-
Notifications
You must be signed in to change notification settings - Fork 2
/
rereg.lua
179 lines (144 loc) · 3.77 KB
/
rereg.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
-- Code borrowed from Ethereal by TenPlus1
local old_biomes = {}
local old_decor = {}
-- backup registered biome data
for key, def in pairs(minetest.registered_biomes) do
old_biomes[key] = def
end
for key, def in pairs(minetest.registered_decorations) do
old_decor[key] = def
end
-- clear current biome data
minetest.clear_registered_biomes()
minetest.clear_registered_decorations()
-- minetest.clear_registered_ores()
-- create list of default biomes to remove
local def_biomes = {
["snowy_grassland"] = 1,
}
-- only re-register biomes that aren't on the list
for key, def in pairs(old_biomes) do
if not def_biomes[key] then
minetest.register_biome(def)
end
end
-- loop through decorations
for key, def in pairs(old_decor) do
local can_add = true
local new_biomes = {}
if type(def.biomes) == "table" then
-- loop through decoration biomes, only re-add one's not on above list
for num, bio in pairs(def.biomes) do
if not def_biomes[bio] then
table.insert(new_biomes, bio)
end
end
-- if no biomes are left on new list, do not re-add decoration
if #new_biomes == 0 then
can_add = false
end
elseif type(def.biomes) == "string" then
if def_biomes[def.biomes] then
can_add = false
else
new_biomes = {def.biomes} -- convert to table
end
elseif not def.biomes then
new_biomes = nil -- keep it nil for re-adding
end
if can_add == true then
def.biomes = new_biomes
minetest.register_decoration(def)
end
end
--Snowy grassland new
-- Pine bush
-- Snowy grassland
minetest.register_biome({
name = "snowy_grassland",
node_dust = "default:snow",
node_top = "default:dirt_with_snow",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 1,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 31000,
y_min = 4,
heat_point = 20,
humidity_point = 35,
})
minetest.register_biome({
name = "snowy_grassland_ocean",
node_dust = "default:snow",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_cave_liquid = "default:water_source",
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
vertical_blend = 1,
y_max = 3,
y_min = -255,
heat_point = 20,
humidity_point = 35,
})
minetest.register_biome({
name = "snowy_grassland_under",
node_cave_liquid = {"default:water_source", "default:lava_source"},
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = -256,
y_min = -400,
heat_point = 20,
humidity_point = 35,
})
-- Dirt
minetest.register_ore({
ore_type = "blob",
ore = "default:dirt",
wherein = {"default:stone"},
clust_scarcity = 16 * 16 * 16,
clust_size = 5,
y_max = 31000,
y_min = -31,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = 17676,
octaves = 1,
persist = 0.0
},
-- Only where default:dirt is present as surface material
biomes = {"snowy_grassland"}
})
-- Pine bush
minetest.register_decoration({
name = "ebiomes:pine_bush_sg",
deco_type = "schematic",
place_on = {"default:dirt_with_snow"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = {"snowy_grassland"},
y_max = 31000,
y_min = 4,
schematic = minetest.get_modpath("default") .. "/schematics/pine_bush.mts",
flags = "place_center_x, place_center_z",
})