diff options
author | heav-4 <heavpoot@gmail.com> | 2022-02-10 19:06:36 +0000 |
---|---|---|
committer | heav-4 <heavpoot@gmail.com> | 2022-02-10 19:06:36 +0000 |
commit | 85581d2a826088a790ba8f50f718edd541f5f9fa (patch) | |
tree | 366443cdee0ae5f140e25f3970d9a7adc98a2e0e | |
parent | e0f2c395b6f1182239a529aa932ac25a89edb27e (diff) |
add grass, sand and water; add all of these to worldgen
-rw-r--r-- | mods/vzxv/init.lua | 38 | ||||
-rw-r--r-- | mods/vzxv/textures/vzxvmoistgrass.png | bin | 0 -> 1137 bytes | |||
-rw-r--r-- | mods/vzxv/textures/vzxvmoistgrassside.png | bin | 0 -> 747 bytes | |||
-rw-r--r-- | mods/vzxv/textures/vzxvsand.png | bin | 0 -> 1171 bytes | |||
-rw-r--r-- | mods/vzxv/textures/vzxvwater.png | bin | 0 -> 563 bytes | |||
-rw-r--r-- | mods/vzxv_worldgen/init.lua | 32 |
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 Binary files differnew file mode 100644 index 0000000..9970c67 --- /dev/null +++ b/mods/vzxv/textures/vzxvmoistgrass.png diff --git a/mods/vzxv/textures/vzxvmoistgrassside.png b/mods/vzxv/textures/vzxvmoistgrassside.png Binary files differnew file mode 100644 index 0000000..7e85ebe --- /dev/null +++ b/mods/vzxv/textures/vzxvmoistgrassside.png diff --git a/mods/vzxv/textures/vzxvsand.png b/mods/vzxv/textures/vzxvsand.png Binary files differnew file mode 100644 index 0000000..f8357c2 --- /dev/null +++ b/mods/vzxv/textures/vzxvsand.png diff --git a/mods/vzxv/textures/vzxvwater.png b/mods/vzxv/textures/vzxvwater.png Binary files differnew file mode 100644 index 0000000..90d3082 --- /dev/null +++ b/mods/vzxv/textures/vzxvwater.png 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) |