1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-06 00:23:49 +02:00
ComfyFactorio/modules/manual_mining_booster.lua
2019-08-26 02:00:00 +02:00

43 lines
1.5 KiB
Lua

--manually mining continuously will speed it up
local event = require 'utils.event'
local valid_entities = {
["rock-big"] = true,
["rock-huge"] = true,
["sand-rock-big"] = true,
}
local function mining_speed_cooldown(p)
if not global.manual_mining_booster[p.index] then return end
if game.tick - global.manual_mining_booster[p.index] < 180 then return end
--if not p.character then p.character.character_mining_speed_modifier = 0 return end
if not p.character then return end
p.character.character_mining_speed_modifier = p.character.character_mining_speed_modifier - 1
if p.character.character_mining_speed_modifier <= 0 then
p.character.character_mining_speed_modifier = 0
global.manual_mining_booster[p.index] = nil
end
end
local function on_player_mined_entity(event)
if not valid_entities[event.entity.name] then return end
local player = game.players[event.player_index]
player.character.character_mining_speed_modifier = player.character.character_mining_speed_modifier + (math.random(25, 50) * 0.01)
if player.character.character_mining_speed_modifier > 10 then player.character.character_mining_speed_modifier = 10 end
global.manual_mining_booster[event.player_index] = game.tick
end
local function tick()
for _, p in pairs(game.connected_players) do
mining_speed_cooldown(p)
end
end
local function on_init(event)
global.manual_mining_booster = {}
end
event.add(defines.events.on_player_mined_entity, on_player_mined_entity)
event.on_nth_tick(60, tick)
event.on_init(on_init)