1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-06 00:23:49 +02:00
ComfyFactorio/modules/players_trample_paths.lua
2019-05-28 13:30:50 +02:00

56 lines
1.5 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)