mirror of
				https://github.com/minetest-mods/mapfix.git
				synced 2025-10-31 13:55:22 +01:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			d4e9de50a9
			...
			618fff5c19
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 618fff5c19 | |||
|  | 16ef3878ae | ||
|  | 85aac3c262 | ||
|  | a7109318ca | ||
|  | a5fd28affd | ||
|  | 932e12410a | ||
|  | 8bbfb77ddb | ||
|  | 4d3f6505b5 | ||
|  | 6772a29a37 | ||
|  | ca4b20ddcc | 
							
								
								
									
										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
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| #mapfix | # mapfix | ||||||
|  |  | ||||||
| Fix some map errors (flow and light problems) | Fix some map errors (flow and light problems) | ||||||
|  |  | ||||||
| @@ -7,7 +7,8 @@ Fix some map errors (flow and light problems) | |||||||
| Look at the water and the jungle trunk at the center. | Look at the water and the jungle trunk at the center. | ||||||
|  |  | ||||||
|  |  | ||||||
| ##minetest.conf settings | ## minetest.conf settings | ||||||
| * mapfix_default_size (by default 40) : size used when omitted | * mapfix_default_size (by default 24) : size used when omitted | ||||||
| * mapfix_max_size (by default 50) : 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 | ||||||
|   | |||||||
							
								
								
									
										29
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								init.lua
									
									
									
									
									
								
							| @@ -9,9 +9,19 @@ end | |||||||
|  |  | ||||||
| local previous = os.time() | local previous = os.time() | ||||||
|  |  | ||||||
| local default_size = tonumber(minetest.setting_get("mapfix_default_size")) or 24 | local default_size = tonumber(minetest.settings:get("mapfix_default_size")) or 24 | ||||||
| local max_size = tonumber(minetest.setting_get("mapfix_max_size")) or 32 | local max_size = tonumber(minetest.settings:get("mapfix_max_size")) or 32 | ||||||
| local delay = tonumber(minetest.setting_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>", | ||||||
| @@ -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) | ||||||
| @@ -46,3 +59,5 @@ minetest.register_chatcommand("mapfix", { | |||||||
| 		return true, "Done." | 		return true, "Done." | ||||||
| 	end, | 	end, | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | minetest.log("action", "[mapfix] loaded.") | ||||||
|   | |||||||
							
								
								
									
										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