forked from minetest-mods/mapfix
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			nalc-1.0
			...
			d4ae58d650
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d4ae58d650 | |||
|  | 0a7f80b681 | ||
| a1a6b44db0 | |||
| bc6c5c1b9b | |||
| 618fff5c19 | |||
|  | 16ef3878ae | ||
|  | 85aac3c262 | ||
|  | a7109318ca | ||
|  | a5fd28affd | ||
|  | 932e12410a | 
							
								
								
									
										17
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | name: build | ||||||
|  |  | ||||||
|  | on: [push, pull_request] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |  | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v1 | ||||||
|  |     - name: apt | ||||||
|  |       run: sudo apt-get install -y luarocks | ||||||
|  |     - name: luacheck install | ||||||
|  |       run: luarocks install --local luacheck | ||||||
|  |     - name: luacheck run | ||||||
|  |       run: $HOME/.luarocks/bin/luacheck ./ | ||||||
							
								
								
									
										21
									
								
								.luacheckrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.luacheckrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | unused_args = false | ||||||
|  | allow_defined_top = true | ||||||
|  | exclude_files = {".luacheckrc"} | ||||||
|  |  | ||||||
|  | globals = { | ||||||
|  |     "minetest", | ||||||
|  | } | ||||||
|  |  | ||||||
|  | read_globals = { | ||||||
|  |     string = {fields = {"split"}}, | ||||||
|  |     table = {fields = {"copy", "getn"}}, | ||||||
|  |  | ||||||
|  |     -- Builtin | ||||||
|  |     "vector", "ItemStack", | ||||||
|  |     "dump", "DIR_DELIM", "VoxelArea", "Settings", | ||||||
|  |  | ||||||
|  |     -- MTG | ||||||
|  |     "default", "sfinv", "creative", "carts", | ||||||
|  |  | ||||||
|  |     --depends | ||||||
|  | } | ||||||
| @@ -11,3 +11,4 @@ Look at the water and the jungle trunk at the center. | |||||||
| * mapfix_default_size (by default 24) : size used when omitted | * mapfix_default_size (by default 24) : size used when omitted | ||||||
| * mapfix_max_size (by default 32) : maximum size allowed for players | * mapfix_max_size (by default 32) : maximum size allowed for players | ||||||
| * mapfix_delay (by default 15) : minimal delay in seconds between 2 `/mapfix` (to avoid server freezing) | * mapfix_delay (by default 15) : minimal delay in seconds between 2 `/mapfix` (to avoid server freezing) | ||||||
|  | * mapfix_priv (by default server) : priv that allows use of `/mapfix` without restrictions | ||||||
|   | |||||||
| @@ -1 +0,0 @@ | |||||||
| Fix some map errors (flow and light problems) |  | ||||||
							
								
								
									
										21
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								init.lua
									
									
									
									
									
								
							| @@ -13,6 +13,16 @@ local default_size = tonumber(minetest.settings:get("mapfix_default_size")) or 2 | |||||||
| local max_size = tonumber(minetest.settings:get("mapfix_max_size")) or 32 | local max_size = tonumber(minetest.settings:get("mapfix_max_size")) or 32 | ||||||
| local delay = tonumber(minetest.settings:get("mapfix_delay")) or 15 | local delay = tonumber(minetest.settings:get("mapfix_delay")) or 15 | ||||||
|  |  | ||||||
|  | local function mapfix_priv() | ||||||
|  |     local priv = minetest.settings:get("mapfix_priv") | ||||||
|  |  | ||||||
|  |     if not minetest.registered_privileges[priv] then | ||||||
|  |         return "server" | ||||||
|  |     else | ||||||
|  |         return priv | ||||||
|  |     end | ||||||
|  | end | ||||||
|  |  | ||||||
| minetest.register_chatcommand("mapfix", { | minetest.register_chatcommand("mapfix", { | ||||||
| 	params = "<size>", | 	params = "<size>", | ||||||
| 	description = "Recalculate the flowing liquids and the light of a chunk", | 	description = "Recalculate the flowing liquids and the light of a chunk", | ||||||
| @@ -23,21 +33,24 @@ minetest.register_chatcommand("mapfix", { | |||||||
| 		if size >= 121 then | 		if size >= 121 then | ||||||
| 			return false, "Radius is too big" | 			return false, "Radius is too big" | ||||||
| 		end | 		end | ||||||
| 		local privs = minetest.check_player_privs(name, {server=true}) | 		local privs = minetest.check_player_privs(name, mapfix_priv()) | ||||||
| 		local time = os.time() | 		local time = os.time() | ||||||
|  |  | ||||||
| 		if not privs then | 		if not privs then | ||||||
| 			if size > max_size then | 			if size > max_size then | ||||||
| 				return false, "You need the server privilege to exceed the radius of " .. max_size .. " blocks" | 				return false, "You need the " .. mapfix_priv() .. " privilege to exceed the radius of " .. max_size .. " blocks" | ||||||
| 			elseif time - previous < delay then | 			elseif time - previous < delay then | ||||||
| 				return false, "Wait at least " .. delay .. " seconds from the previous \"/mapfix\"." | 				return false, "Wait at least " .. delay .. " seconds from the previous \"/mapfix\"." | ||||||
| 			end | 			end | ||||||
| 			previous = time | 			previous = time | ||||||
| 		end | 		end | ||||||
|  |  | ||||||
| 		minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size) | 		minetest.log("action", | ||||||
|  |         name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size) | ||||||
|  |  | ||||||
| 		size = math.max(math.floor(size - 8), 0) -- When passed to get_voxel_manip, positions are rounded up, to a multiple of 16 nodes in each direction. By subtracting 8 it's rounded to the nearest chunk border. max is used to avoid negative radius. |         -- When passed to get_voxel_manip, positions are rounded up, to a multiple of 16 nodes in each direction. | ||||||
|  |         -- By subtracting 8 it's rounded to the nearest chunk border. max is used to avoid negative radius. | ||||||
|  | 		size = math.max(math.floor(size - 8), 0) | ||||||
|  |  | ||||||
| 		local minp = vector.subtract(pos, size) | 		local minp = vector.subtract(pos, size) | ||||||
| 		local maxp = vector.add(pos, size) | 		local maxp = vector.add(pos, size) | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							| @@ -1 +1,2 @@ | |||||||
| name = mapfix | name = mapfix | ||||||
|  | description = Fix some map errors (flow and light problems) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | mapfix_default_size (default size a mapfix range is) int 24 | ||||||
|  | mapfix_max_size (max size a mapfix range can be) int 32 | ||||||
|  | mapfix_delay (delay between issueing of /mapfix for players) int 15 | ||||||
|  | mapfix_priv (priv for unrestricted /mapfix use) string server | ||||||
		Reference in New Issue
	
	Block a user