Improve mapgen, add grass, and include the fill tool.
This commit is contained in:
parent
1e897665bb
commit
4659a008ac
86 changed files with 1098 additions and 293 deletions
|
|
@ -40,7 +40,7 @@ rgt.register_node("stone_tile", {
|
|||
rgt.register_node("cobble", {
|
||||
tiles = {"rgt_cobble.png"},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {stone = 1}
|
||||
})
|
||||
|
||||
rgt.register_node("dirt", {
|
||||
|
|
@ -54,11 +54,122 @@ rgt.register_node("dirt_mossy", {
|
|||
})
|
||||
|
||||
rgt.register_node("dirt_grass", {
|
||||
tiles = {"rgt_grass_top.png", "rgt_dirt.png", "rgt_dirt.png^rgt_grass_side.png"},
|
||||
paramtype2 = "color",
|
||||
tiles = {"rgt_grass_top.png", {name = "rgt_dirt.png", color = "#fff"}, {name = "rgt_dirt.png^rgt_grass_side_shadow.png", color = "#fff"}},
|
||||
overlay_tiles = {"", "", "rgt_grass_side.png"},
|
||||
palette = "rgt_palette_grass.png",
|
||||
on_construct = function(pos)
|
||||
|
||||
end,
|
||||
-- tiles = {"[fill:16x16:0,0:#3e7e7b^[fill:14x14:1,1:#326764"},
|
||||
groups = {dig_immediate = 3}
|
||||
})
|
||||
|
||||
-- Grass
|
||||
for i = 1, 3 do
|
||||
rgt.register_node("grass_"..i, {
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 2,
|
||||
sunlight_propagates = false,
|
||||
tiles = {"rgt_grass_"..i..".png"},
|
||||
groups = {attached_node = 3, dig_immediate = 3},
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
-6/16, -0.5, -6/16,
|
||||
6/16, 6/16, 6/16
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Tall grass
|
||||
rgt.register_node("grass_tall_bottom", {
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 2,
|
||||
sunlight_propagates = false,
|
||||
tiles = {"rgt_grass_tall.png^[verticalframe:2:1"},
|
||||
groups = {attached_node = 3, dig_immediate = 3},
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
-6/16, -0.5, -6/16,
|
||||
6/16, 0.5, 6/16
|
||||
}
|
||||
},
|
||||
node_placement_prediction = "",
|
||||
after_destruct = function(pos)
|
||||
local above = pos:offset(0, 1, 0)
|
||||
local na = minetest.get_node(above)
|
||||
if na.name:find "grass_tall_top" then
|
||||
minetest.remove_node(above)
|
||||
end
|
||||
end,
|
||||
on_place = function(s, p, pt)
|
||||
if pt.type ~= "node" then return end
|
||||
|
||||
local target = pt.above
|
||||
|
||||
if not minetest.get_node(target:offset(0, -1, 0)).name:find "dirt_grass" then
|
||||
return
|
||||
end
|
||||
|
||||
local above = target:offset(0, 1, 0)
|
||||
if minetest.get_node(above).name == "air" then
|
||||
minetest.set_node(target, {name = "grass_tall_bottom", param2 = 2})
|
||||
minetest.set_node(above, {name = "grass_tall_top", param2 = 2})
|
||||
s:take_item()
|
||||
return s
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
rgt.register_node("grass_tall_top", {
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 2,
|
||||
sunlight_propagates = false,
|
||||
tiles = {"rgt_grass_tall.png^[verticalframe:2:0"},
|
||||
groups = {dig_immediate = 3},
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
-6/16, -0.5, -6/16,
|
||||
6/16, 6/16, 6/16
|
||||
}
|
||||
},
|
||||
drop = "grass_tall_bottom",
|
||||
after_destruct = function(pos)
|
||||
local below = pos:offset(0, -1, 0)
|
||||
local nb = minetest.get_node(below)
|
||||
if nb.name:find "grass_tall_bottom" then
|
||||
minetest.remove_node(below)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- TODO: Tall grass
|
||||
--rgt.register_node("tall_grass", {
|
||||
-- drawtype = "mesh",
|
||||
-- mesh = "rgt_plantlike_1x1x2.obj",
|
||||
-- use_texture_alpha = "clip",
|
||||
-- paramtype = "light",
|
||||
-- sunlight_propagates = false,
|
||||
-- tiles = {"rgt_grass_tall.png"},
|
||||
-- groups = {dig_immediate = 3},
|
||||
-- walkable = false
|
||||
--})
|
||||
|
||||
|
||||
|
||||
rgt.register_node("path_grass", {
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
|
|
@ -91,43 +202,43 @@ rgt.register_node("oak_leaves", {
|
|||
drawtype = "allfaces",
|
||||
tiles = {"rgt_oak_leaves.png"},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("oak_planks", {
|
||||
tiles = {{name = "rgt_oak_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("dark_planks", {
|
||||
tiles = {{name = "rgt_dark_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("spruce_planks", {
|
||||
tiles = {{name = "rgt_spruce_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("acacia_planks", {
|
||||
tiles = {{name = "rgt_acacia_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("redwood_planks", {
|
||||
tiles = {{name = "rgt_redwood_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
rgt.register_node("birch_planks", {
|
||||
tiles = {{name = "rgt_birch_planks.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3}
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -149,6 +260,13 @@ rgt.register_node("glass", {
|
|||
--}
|
||||
|
||||
|
||||
rgt.register_node("basalt", {
|
||||
tiles = {{name = "rgt_basalt.png", align_style = "world"}},
|
||||
_variants = "all",
|
||||
groups = {dig_immediate = 3},
|
||||
})
|
||||
|
||||
|
||||
rgt.register_node("water", {
|
||||
tiles = {"[fill:16x16:0,0:#2d5a7c77^[fill:14x14:1,1:#2d5a7c33"},
|
||||
groups = {dig_immediate = 3},
|
||||
|
|
@ -158,6 +276,7 @@ rgt.register_node("water", {
|
|||
walkable = false,
|
||||
climbable = true,
|
||||
post_effect_color = "#2d5a7c55",
|
||||
is_ground_content = false,
|
||||
|
||||
liquidtype = "source",
|
||||
-- Minetest pro tip: Do not try to use aliases for these.
|
||||
|
|
@ -178,6 +297,7 @@ rgt.register_node("water_flowing", {
|
|||
walkable = false,
|
||||
climbable = true,
|
||||
post_effect_color = "#2d5a7c55",
|
||||
is_ground_content = false,
|
||||
|
||||
liquidtype = "flowing",
|
||||
liquid_alternative_source = "red_glazed_terracotta:water",
|
||||
|
|
@ -230,6 +350,35 @@ minetest.register_alias("mapgen_water_source", "red_glazed_terracotta:water")
|
|||
minetest.register_alias("mapgen_river_water_source", "red_glazed_terracotta:river_water")
|
||||
|
||||
|
||||
--[[
|
||||
|
||||
Biomes to add:
|
||||
|
||||
[Temperate]
|
||||
Steppe
|
||||
Moor
|
||||
Plains
|
||||
Light Deciduous Forest
|
||||
Dark Deciduous Forest
|
||||
|
||||
[Cold]
|
||||
Alpine
|
||||
Glacier
|
||||
Taiga
|
||||
Tundra
|
||||
Coniferous Forest
|
||||
|
||||
[Warm]
|
||||
Desert
|
||||
Badlands
|
||||
Jungle
|
||||
Swamp
|
||||
Marsh
|
||||
|
||||
--]]
|
||||
|
||||
include "biomes.lua"
|
||||
|
||||
|
||||
rgt.register_node("light", {
|
||||
tiles = {"[fill:1x1:0,0:#fed"},
|
||||
|
|
@ -247,62 +396,80 @@ minetest.register_ore {
|
|||
clust_size = 1
|
||||
}
|
||||
|
||||
|
||||
--minetest.register_decoration {
|
||||
-- deco_type = "schematic",
|
||||
-- place_on = "dirt_grass",
|
||||
-- biomes = {"forest"},
|
||||
-- y_min = 1,
|
||||
-- fill_ratio = 0.01,
|
||||
-- schematic = minetest.get_modpath(minetest.get_current_modname()).."/schems/tree.mts",
|
||||
-- flags = "place_center_x, place_center_z",
|
||||
-- place_offset_y = 1,
|
||||
--}
|
||||
|
||||
minetest.register_biome{
|
||||
name = "plains",
|
||||
|
||||
node_top = "dirt_grass",
|
||||
depth_top = 1,
|
||||
|
||||
node_filler = "dirt",
|
||||
depth_filler = 5,
|
||||
|
||||
node_riverbed = "dirt",
|
||||
depth_riverbed = 3,
|
||||
|
||||
node_dungeon = "cobble",
|
||||
node_dungeon_alt = "stone_brick_large",
|
||||
|
||||
|
||||
y_max = 3000,
|
||||
y_min = 2,
|
||||
vertical_blend = 2,
|
||||
|
||||
heat_point = 50,
|
||||
humidity_point = 50,
|
||||
minetest.register_decoration {
|
||||
deco_type = "schematic",
|
||||
place_on = "dirt_grass",
|
||||
biomes = {"forest"},
|
||||
y_min = 1,
|
||||
y_max = 8000,
|
||||
fill_ratio = 0.01,
|
||||
schematic = minetest.get_modpath(minetest.get_current_modname()).."/schems/tree.mts",
|
||||
flags = "place_center_x, place_center_z",
|
||||
place_offset_y = 1,
|
||||
}
|
||||
|
||||
minetest.register_biome{
|
||||
name = "beach",
|
||||
minetest.register_decoration {
|
||||
deco_type = "schematic",
|
||||
place_on = "dirt_grass",
|
||||
biomes = {"plains"},
|
||||
y_min = 1,
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.25,
|
||||
spread = {x = 8, y = 8, z = 8},
|
||||
seed = 3456789,
|
||||
octaves = 4,
|
||||
persist = 0.6,
|
||||
lacunarity = 3,
|
||||
},
|
||||
-- fill_ratio = 0.1,
|
||||
schematic = {
|
||||
size = {x = 1, y = 2, z = 1}, -- 1×2×1
|
||||
data = {
|
||||
{name = "grass_tall_bottom", prob = 255, param2 = 2},
|
||||
{name = "grass_tall_top", prob = 255, param2 = 2},
|
||||
},
|
||||
},
|
||||
place_offset_y = 1,
|
||||
}
|
||||
|
||||
node_top = "sand",
|
||||
depth_top = 1,
|
||||
minetest.register_decoration {
|
||||
deco_type = "simple",
|
||||
place_on = "dirt_grass",
|
||||
biomes = {"forest", "plains"},
|
||||
decoration = {"grass_1", "grass_2", "grass_3"},
|
||||
param2 = 2,
|
||||
y_min = 1,
|
||||
fill_ratio = 0.2,
|
||||
}
|
||||
|
||||
node_filler = "sand",
|
||||
depth_filler = 2,
|
||||
minetest.override_item("", {
|
||||
on_place = function(s, p, pt)
|
||||
if minetest.get_node(pt.under).name:find "dirt_grass" then
|
||||
minetest.set_node(pt.under, {name = "path_grass"})
|
||||
end
|
||||
-- minetest.spawn_tree(pt.above, {
|
||||
-- axiom = "TF[FFA]",
|
||||
-- rules_a = "F",
|
||||
-- trunk = "oak_log",
|
||||
-- leaves = "oak_leaves",
|
||||
-- angle = 30,
|
||||
-- iterations = 2,
|
||||
-- random_level = 0,
|
||||
-- trunk_type = "single",
|
||||
---- thin_branches = true,
|
||||
-- fruit_chance = 0,
|
||||
-- fruit = "stone_brick"
|
||||
-- })
|
||||
end
|
||||
})
|
||||
|
||||
node_riverbed = "sand",
|
||||
depth_riverbed = 3,
|
||||
|
||||
node_dungeon = "cobble",
|
||||
node_dungeon_alt = "stone_brick_large",
|
||||
minetest.register_chatcommand("biome", {
|
||||
func = function(name)
|
||||
tell(name, minetest.get_biome_name(minetest.get_biome_data(minetest.get_player_by_name(name):get_pos()).biome))
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
y_max = 1,
|
||||
y_min = -3,
|
||||
vertical_blend = 1,
|
||||
include "config.lua"
|
||||
|
||||
heat_point = 50,
|
||||
humidity_point = 50,
|
||||
}
|
||||
--minetest.register_mapgen_script(minetest.get_modpath(minetest.get_current_modname()).."/mapgen.lua")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue