What is the code for ore spawning?

Rhys
Member
 
Posts: 379
Joined: Wed May 22, 2013 15:22

What is the code for ore spawning?

by Rhys » Fri Aug 23, 2013 15:35

Hello there! Just wondering whats the code for ore spawning? I am creating my own mod which involves ore. Anyhow someone has code they can give me for it? Thanks.

- Rhys
 

User avatar
Evergreen
Member
 
Posts: 2131
Joined: Sun Jan 06, 2013 01:22
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

by Evergreen » Fri Aug 23, 2013 15:45

Okay, here is some example code for an ore.

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_ore({
    ore_type       = "scatter",
    ore            = "mod:stone_with_ore",
    wherein        = "default:stone",
    clust_scarcity = 8*8*8,
    clust_num_ores = 8,
    clust_size     = 3,
    height_min     = -31000,
    height_max     = 64,
})


To quote the dev wiki:

ore_type: See Ore types
ore: The name of the ore node
wherein: The node that the ore will generate inside of
clust_scarcity: Ore has a 1 out of clust_scarcity chance of spawning in a node.
clust_num_ores: Number of ores in a cluster
clust_size: Size of the bounding box of the cluster
height_min: The lowest level that the ore will generate at
height_max: The highest level that the ore will generate at
noise_threshhold: If noise is above this threshold, ore is placed. Not needed for a uniform distribution
noise_params: NoiseParams structure describing the perlin noise used for ore distribution


Also, the possible ore types are:

scatter

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
Randomly chooses a location and generates a cluster of ore.
If noise_params is specified, the ore will be placed if the 3d perlin noise at
that point is greater than the noise_threshhold, giving the ability to create a non-equal
distribution of ore.


sheet

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
Creates a sheet of ore in a blob shape according to the 2d perlin noise described by noise_params.
The relative height of the sheet can be controlled by the same perlin noise as well, by specifying
a non-zero 'scale' parameter in noise_params.  IMPORTANT: The noise is not transformed by offset or
scale when comparing against the noise threshhold, but scale is used to determine relative height.
The height of the blob is randomly scattered, with a maximum height of clust_size.
clust_scarcity and clust_num_ores are ignored.
This is essentially an improved version of the so-called "stratus" ore seen in some unofficial mods.



EDIT:

Remember to register the ore as a node first.

Like so:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_node("yourmod:stone_with_yourore", {
    description = "Your Ore",
    tiles = {"default_stone.png^yourmod_mineral_yourore.png"},
    groups = {cracky=3},
    drop = 'yourmod:yourore_lump',
    sounds = default.node_sound_stone_defaults(),
})

Also remember to change "yourmod" with your mod name, and "youore" with the name of your ore.
Last edited by Evergreen on Fri Aug 23, 2013 17:30, edited 1 time in total.
"Help! I searched for a mod but I couldn't find it!"
http://krock-works.16mb.com/MTstuff/modSearch.php
 

User avatar
LionsDen
Member
 
Posts: 525
Joined: Thu Jun 06, 2013 03:19

by LionsDen » Fri Aug 23, 2013 15:46

look at the mapgen.lua file in your games\minetest_game\mods\default of the minetest folder.

EDIT: Ninja'd by Evergreen. :)
Last edited by LionsDen on Fri Aug 23, 2013 15:47, edited 1 time in total.
 

Rhys
Member
 
Posts: 379
Joined: Wed May 22, 2013 15:22

by Rhys » Sat Aug 24, 2013 17:28

Evergreen wrote:Okay, here is some example code for an ore.

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_ore({
    ore_type       = "scatter",
    ore            = "mod:stone_with_ore",
    wherein        = "default:stone",
    clust_scarcity = 8*8*8,
    clust_num_ores = 8,
    clust_size     = 3,
    height_min     = -31000,
    height_max     = 64,
})


To quote the dev wiki:

ore_type: See Ore types
ore: The name of the ore node
wherein: The node that the ore will generate inside of
clust_scarcity: Ore has a 1 out of clust_scarcity chance of spawning in a node.
clust_num_ores: Number of ores in a cluster
clust_size: Size of the bounding box of the cluster
height_min: The lowest level that the ore will generate at
height_max: The highest level that the ore will generate at
noise_threshhold: If noise is above this threshold, ore is placed. Not needed for a uniform distribution
noise_params: NoiseParams structure describing the perlin noise used for ore distribution


Also, the possible ore types are:

scatter

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
Randomly chooses a location and generates a cluster of ore.
If noise_params is specified, the ore will be placed if the 3d perlin noise at
that point is greater than the noise_threshhold, giving the ability to create a non-equal
distribution of ore.


sheet

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
Creates a sheet of ore in a blob shape according to the 2d perlin noise described by noise_params.
The relative height of the sheet can be controlled by the same perlin noise as well, by specifying
a non-zero 'scale' parameter in noise_params.  IMPORTANT: The noise is not transformed by offset or
scale when comparing against the noise threshhold, but scale is used to determine relative height.
The height of the blob is randomly scattered, with a maximum height of clust_size.
clust_scarcity and clust_num_ores are ignored.
This is essentially an improved version of the so-called "stratus" ore seen in some unofficial mods.



EDIT:

Remember to register the ore as a node first.

Like so:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_node("yourmod:stone_with_yourore", {
    description = "Your Ore",
    tiles = {"default_stone.png^yourmod_mineral_yourore.png"},
    groups = {cracky=3},
    drop = 'yourmod:yourore_lump',
    sounds = default.node_sound_stone_defaults(),
})

Also remember to change "yourmod" with your mod name, and "youore" with the name of your ore.


Ah, thanks, this'll help me. :D
 


Return to WIP Mods

Who is online

Users browsing this forum: No registered users and 13 guests

cron