[控制台]填海指令
异星工厂吧
全部回复
仅看楼主
level 6
用于批量填海的控制台指令。可以将自身相邻的整片水域一次性填平
相邻水单元格才会进行替换,否则无事发生。
/c local player_position = game.player.position
local neighbouring_water_tiles = {}
for x=player_position.x-1,player_position.x+1 do
for y=player_position.y-1,player_position.y+1 do
local t = game.player.surface.get_tile(x,y)
if t.name == "water" or t.name == "deepwater" then
table.insert(neighbouring_water_tiles, {x=x, y=y})
end
end
end
local first_water_tile = neighbouring_water_tiles[1]
local connected_water_tiles = game.player.surface.get_connected_tiles(first_water_tile, {"water", "deepwater"})
local replacement_tiles = {}
for i, p in ipairs(connected_water_tiles) do
table.insert(replacement_tiles, {name="landfill", position=p})
end
game.player.surface.set_tiles(replacement_tiles)
game.player.print(string.format("替换了 %i 个水方块", #replacement_tiles))
效果:
执行后:
用法:紧贴要填的水域后,控制台输入指令。
2021年07月05日 08点07分 1
level 7
厉害了[大拇指]
2021年07月05日 10点07分 2
level 8
妙啊[真棒]
2021年07月05日 10点07分 3
level 10
这档。。。是玩了几个小时的
2021年07月05日 12点07分 4
1