diff --git a/modules/addons/tree-decon.lua b/modules/addons/tree-decon.lua index 29e13707..ad5bc233 100644 --- a/modules/addons/tree-decon.lua +++ b/modules/addons/tree-decon.lua @@ -4,6 +4,7 @@ local Event = require 'utils.event' --- @dep utils.event local Global = require 'utils.global' --- @dep utils.global local Roles = require 'expcore.roles' --- @dep expcore.roles +local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data -- Global queue used to store trees that need to be removed, also chache for player roles local chache = {} @@ -13,6 +14,22 @@ Global.register({ tree_queue, chache }, function(tbl) chache = tbl[2] end) + +-- Left menu button to toggle between fast decon and normal decon marking +local HasEnabledDecon = PlayerData.Settings:combine('HasEnabledDecon') +HasEnabledDecon:set_default(false) + +Gui.toolbar_button("entity/tree-01", {'tree-decon.main-tooltip'}, function (player) + return Roles.player_allowed(player, "fast-tree-decon") +end) +:on_click(function(player, element) + local status = HasEnabledDecon:get(player) + HasEnabledDecon:set(player, not status) + Gui.toolbar_button_style(element, not status) + player.print("Fast decon has been " .. (status and "disabled" or "enabled")) +end) + + -- Add trees to queue when marked, only allows simple entities and for players with role permission Event.add(defines.events.on_marked_for_deconstruction, function(event) -- Check which type of decon a player is allowed