forked from nalc/nalc_game
		
	Adjust shadow intensity based on cloud density (#2938)
This commit is contained in:
		@@ -72,6 +72,6 @@ default:torch 99,default:cobble 99
 | 
				
			|||||||
# Helps rivers create more sound, especially on level sections.
 | 
					# Helps rivers create more sound, especially on level sections.
 | 
				
			||||||
#river_source_sounds = false
 | 
					#river_source_sounds = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Enable cloud variation by the 'weather' mod.
 | 
					# Enable cloud and shadow intensity variation by the 'weather' mod.
 | 
				
			||||||
# Non-functional in V6 or Singlenode mapgens.
 | 
					# Non-functional in V6 or Singlenode mapgens.
 | 
				
			||||||
#enable_weather = true
 | 
					#enable_weather = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,18 @@
 | 
				
			|||||||
-- Disable by mapgen or setting
 | 
					-- Disable by mapgen or setting
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local mg_name = minetest.get_mapgen_setting("mg_name")
 | 
					local mg_name = minetest.get_mapgen_setting("mg_name")
 | 
				
			||||||
if mg_name == "v6" or mg_name == "singlenode" or
 | 
					if minetest.settings:get_bool("enable_weather") == false then
 | 
				
			||||||
		minetest.settings:get_bool("enable_weather") == false then
 | 
					 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if mg_name == "v6" or mg_name == "singlenode" then
 | 
				
			||||||
 | 
						-- set a default shadow intensity for mgv6 and singlenode
 | 
				
			||||||
 | 
						minetest.register_on_joinplayer(function(player)
 | 
				
			||||||
 | 
							player:set_lighting({ shadows = { intensity = 0.33 } })
 | 
				
			||||||
 | 
						end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Parameters
 | 
					-- Parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -96,15 +103,18 @@ local function update_clouds()
 | 
				
			|||||||
		-- density_max = 0.8 at humid = 50.
 | 
							-- density_max = 0.8 at humid = 50.
 | 
				
			||||||
		-- density_max = 1.35 at humid = 100.
 | 
							-- density_max = 1.35 at humid = 100.
 | 
				
			||||||
		local density_max = 0.8 + ((humid - 50) / 50) * 0.55
 | 
							local density_max = 0.8 + ((humid - 50) / 50) * 0.55
 | 
				
			||||||
 | 
							local density = rangelim(density_max, 0.2, 1.0) * n_density
 | 
				
			||||||
		player:set_clouds({
 | 
							player:set_clouds({
 | 
				
			||||||
			-- Range limit density_max to always have occasional
 | 
								-- Range limit density_max to always have occasional
 | 
				
			||||||
			-- small scattered clouds at extreme low humidity.
 | 
								-- small scattered clouds at extreme low humidity.
 | 
				
			||||||
			density = rangelim(density_max, 0.2, 1.0) * n_density,
 | 
								density = density,
 | 
				
			||||||
			thickness = math.max(math.floor(
 | 
								thickness = math.max(math.floor(
 | 
				
			||||||
				rangelim(32 * humid / 100, 8, 32) * n_thickness
 | 
									rangelim(32 * humid / 100, 8, 32) * n_thickness
 | 
				
			||||||
				), 2),
 | 
									), 2),
 | 
				
			||||||
			speed = {x = n_speedx * 4, z = n_speedz * 4},
 | 
								speed = {x = n_speedx * 4, z = n_speedz * 4},
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 | 
							-- now adjust the shadow intensity
 | 
				
			||||||
 | 
							player:set_lighting({ shadows = { intensity = 0.7 * (1 - density) } })
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,6 +72,6 @@ engine_spawn (Use engine spawn search) bool false
 | 
				
			|||||||
#    Helps rivers create more sound, especially on level sections.
 | 
					#    Helps rivers create more sound, especially on level sections.
 | 
				
			||||||
river_source_sounds (River source node sounds) bool false
 | 
					river_source_sounds (River source node sounds) bool false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    Enable cloud variation by the 'weather' mod.
 | 
					#    Enable cloud and shadow intensity variation by the 'weather' mod.
 | 
				
			||||||
#    Non-functional in V6 or Singlenode mapgens.
 | 
					#    Non-functional in V6 or Singlenode mapgens.
 | 
				
			||||||
enable_weather (Enable weather) bool true
 | 
					enable_weather (Enable weather) bool true
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user