diff --git a/locale/en/gui.cfg b/locale/en/gui.cfg index 8a822b82..5a638410 100644 --- a/locale/en/gui.cfg +++ b/locale/en/gui.cfg @@ -200,4 +200,10 @@ data-settings=Settings data-statistics=Statistics data-required=Required data-misc=Miscellaneous -data-format=__1____2__ \ No newline at end of file +data-format=__1____2__ + +[tree-decon] +main-tooltip=Toggle fast tree decon +enabled=enabled +disabled=disabled +toggle-msg=Fast decon has been __1__ \ No newline at end of file diff --git a/modules/addons/tree-decon.lua b/modules/addons/tree-decon.lua index 29e13707..075d0dfb 100644 --- a/modules/addons/tree-decon.lua +++ b/modules/addons/tree-decon.lua @@ -4,6 +4,8 @@ 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 Gui = require 'expcore.gui' --- @dep expcore.gui +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 +15,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(status and {'tree-decon.toggle-msg', {'tree-decon.disabled'}} or {'tree-decon.toggle-msg', {'tree-decon.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