1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-30 23:17:53 +02:00
ComfyFactorio/modules/players_trample_paths.lua
2021-03-24 20:14:55 +01:00

68 lines
1.6 KiB
Lua

-- players trample paths, tiles change as players walk around
local Event = require 'utils.event'
local math_random = math.random
local blacklisted_tiles = {
['concrete'] = true,
['deepwater'] = true,
['deepwater-green'] = true,
['dirt-1'] = true,
['hazard-concrete-left'] = true,
['hazard-concrete-right'] = true,
['lab-dark-1'] = true,
['lab-dark-2'] = true,
['lab-white'] = true,
['out-of-map'] = true,
['refined-concrete'] = true,
['refined-hazard-concrete-left'] = true,
['refined-hazard-concrete-right'] = true,
['stone-path'] = true,
['tutorial-grid'] = true,
['water'] = true,
['water-green'] = true
}
local replacement_tiles = {
['dirt-7'] = 'dirt-6',
['dirt-6'] = 'dirt-5',
['dirt-5'] = 'dirt-4',
['dirt-4'] = 'dirt-3',
['dirt-3'] = 'dirt-2',
['dirt-2'] = 'dirt-1'
}
local function on_player_changed_position(event)
if math_random(1, 2) ~= 1 then
return
end
local player = game.players[event.player_index]
if not player.character then
return
end
if player.character.driving then
return
end
local tile = player.surface.get_tile(player.position)
if not tile then
return
end
if not tile.valid then
return
end
if blacklisted_tiles[tile.name] then
return
end
local new_tile = 'dirt-7'
if replacement_tiles[tile.name] then
new_tile = replacement_tiles[tile.name]
end
player.surface.set_tiles({{name = new_tile, position = tile.position}}, true)
end
Event.add(defines.events.on_player_changed_position, on_player_changed_position)