summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheav-4 <heavpoot@gmail.com>2022-02-10 19:06:36 +0000
committerheav-4 <heavpoot@gmail.com>2022-02-10 19:06:36 +0000
commit85581d2a826088a790ba8f50f718edd541f5f9fa (patch)
tree366443cdee0ae5f140e25f3970d9a7adc98a2e0e
parente0f2c395b6f1182239a529aa932ac25a89edb27e (diff)
add grass, sand and water; add all of these to worldgen
-rw-r--r--mods/vzxv/init.lua38
-rw-r--r--mods/vzxv/textures/vzxvmoistgrass.pngbin0 -> 1137 bytes
-rw-r--r--mods/vzxv/textures/vzxvmoistgrassside.pngbin0 -> 747 bytes
-rw-r--r--mods/vzxv/textures/vzxvsand.pngbin0 -> 1171 bytes
-rw-r--r--mods/vzxv/textures/vzxvwater.pngbin0 -> 563 bytes
-rw-r--r--mods/vzxv_worldgen/init.lua32
6 files changed, 65 insertions, 5 deletions
diff --git a/mods/vzxv/init.lua b/mods/vzxv/init.lua
index 6c50d4a..efbd220 100644
--- a/mods/vzxv/init.lua
+++ b/mods/vzxv/init.lua
@@ -10,3 +10,41 @@ minetest.register_node("vzxv:moistdirt", {
description = "Dirt",
tiles={"vzxvmoistdirt.png"},
})
+minetest.register_node("vzxv:moistgrass", {
+ description = "Grass",
+ tiles={"vzxvmoistgrass.png","vzxvmoistdirt.png","vzxvmoistdirt.png^vzxvmoistgrassside.png",},
+})
+
+minetest.register_node("vzxv:water", {
+ description = "Water",
+ tiles={"vzxvwater.png"},
+ walkable = false,
+ liquidtype = "source",
+ drawtype = "liquid",
+ use_texture_alpha = "blend",
+ liquid_viscocity = 7,
+ move_resistance = 1,
+ liquid_alternative_source = "vzxv:water",
+ liquid_alternative_flowing = "vzxv:flowingwater",
+ paramtype="light",
+ sunlight_propagates=false,
+})
+minetest.register_node("vzxv:flowingwater", {
+ description = "Water",
+ tiles={"vzxvwater.png"},
+ walkable = false,
+ liquidtype = "flowing",
+ drawtype = "liquid",
+ use_texture_alpha = "blend",
+ liquid_viscocity = 7,
+ move_resistance = 1,
+ liquid_alternative_source = "vzxv:water",
+ liquid_alternative_flowing = "vzxv:flowingwater",
+ paramtype="light",
+ sunlight_propagates=false,
+})
+
+minetest.register_node("vzxv:sand", {
+ description = "Sand",
+ tiles={"vzxvsand.png"},
+}) \ No newline at end of file
diff --git a/mods/vzxv/textures/vzxvmoistgrass.png b/mods/vzxv/textures/vzxvmoistgrass.png
new file mode 100644
index 0000000..9970c67
--- /dev/null
+++ b/mods/vzxv/textures/vzxvmoistgrass.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvmoistgrassside.png b/mods/vzxv/textures/vzxvmoistgrassside.png
new file mode 100644
index 0000000..7e85ebe
--- /dev/null
+++ b/mods/vzxv/textures/vzxvmoistgrassside.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvsand.png b/mods/vzxv/textures/vzxvsand.png
new file mode 100644
index 0000000..f8357c2
--- /dev/null
+++ b/mods/vzxv/textures/vzxvsand.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvwater.png b/mods/vzxv/textures/vzxvwater.png
new file mode 100644
index 0000000..90d3082
--- /dev/null
+++ b/mods/vzxv/textures/vzxvwater.png
Binary files differ
diff --git a/mods/vzxv_worldgen/init.lua b/mods/vzxv_worldgen/init.lua
index 4723b66..44bc07a 100644
--- a/mods/vzxv_worldgen/init.lua
+++ b/mods/vzxv_worldgen/init.lua
@@ -2,18 +2,25 @@ minetest.set_mapgen_setting('mg_name','singlenode',true)
minetest.set_mapgen_setting('flags','nolight',true)
local stone = minetest.get_content_id("vzxv:stone")
+local dirt = minetest.get_content_id("vzxv:moistdirt")
+local grass = minetest.get_content_id("vzxv:moistgrass")
+local water = minetest.get_content_id("vzxv:water")
+local sand = minetest.get_content_id("vzxv:sand")
+
local data = {}
+local dirt_height = 4
+local water_level = 14
minetest.register_on_generated(function(minp,maxp,seed)
local voxmn, vmin, vmax = minetest.get_mapgen_object("voxelmanip")
local va = VoxelArea:new{MinEdge=vmin,MaxEdge=vmax}
local noisemap = PerlinNoiseMap({
seed = 1,
- offset = -85,
- scale = 85,
+ offset = -50,
+ scale = 50,
spread = {x=2500,y=2500,z=500},
octaves = 5,
- persistence = 0.63,
+ persistence = 0.8,
lacunarity = 2.0,
flags = "defaults, absvalue",
}, {x=maxp.x-minp.x+1,y=maxp.z-minp.z+1})
@@ -25,8 +32,23 @@ minetest.register_on_generated(function(minp,maxp,seed)
local height = heightmap[z-minp.z+1][x-minp.x+1]
for y=minp.y, maxp.y do
local i = va:index(x,y,z)
+ local underwater = (y <= water_level)
if y < height then
- data[i] = stone
+ if not underwater then
+ if y == math.floor(height) then
+ data[i] = grass
+ else
+ data[i] = y > height - dirt_height and dirt or stone
+ end
+ else
+ if y >= water_level - 1 then
+ data[i] = sand
+ else
+ data[i] = stone
+ end
+ end
+ elseif underwater then
+ data[i] = water
end
end
end
@@ -34,8 +56,8 @@ minetest.register_on_generated(function(minp,maxp,seed)
voxmn:set_data(data)
voxmn:update_liquids()
- voxmn:calc_lighting()
voxmn:write_to_map(true)
+ voxmn:calc_lighting()
minetest.after(0,function()
minetest.fix_light(minp,maxp)