Skip to content

Commit

Permalink
#3 Add shortcut hotkey option & hide mod button player option
Browse files Browse the repository at this point in the history
  • Loading branch information
muppet9010 committed Feb 12, 2019
1 parent 12bd41b commit 3166e0e
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 9 deletions.
5 changes: 5 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
0.1.2
Added configurable shortcut key to get a tape measure tool. Defaults to CONTROL + M.
Added a per player mod option to now show the mod button. Player then has to use the shortcut key to get a tape measure tool.
---------------------------------------------------------------------------------------------------

0.1.1
Tidied up the gui slightly
When selecting an area the tiles will be highlighted to help guage the intended edge of selection
Expand Down
24 changes: 22 additions & 2 deletions control.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,35 @@ local function MakeGlobals()
end


local function UpdatedPlayerModButtonSetting(player)
Gui.RecreateModButton(player)
end


local function UpdateSetting(settingName, player)
if settingName == "show-mod-button" then
UpdatedPlayerModButtonSetting(player)
end
end


local function OnSettingChanged(event)
local player = game.players[event.player_index]
UpdateSetting(event.setting, player)
end


script.on_init(function()
MakeGlobals()
Gui.RecreateModButtonForAll()
Gui.RecreateAllGuisForAll()
end)
script.on_configuration_changed(function()
MakeGlobals()
Gui.RecreateModButtonForAll()
Gui.RecreateAllGuisForAll()
end)
script.on_event(defines.events.on_player_joined_game, Gui.PlayerJoinedEvent)
script.on_event(defines.events.on_gui_click, Gui.GuiClickedEvent)
script.on_event(defines.events.on_player_selected_area, Measure.OnSelectedEvent)
script.on_event(defines.events.on_mod_item_opened, Measure.OnModItemOpenedEvent)
script.on_event("get-tape-measure", Measure.OnGetTapeMeasureCustomInput)
script.on_event(defines.events.on_runtime_mod_setting_changed, OnSettingChanged)
1 change: 1 addition & 0 deletions data.lua
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
require("prototypes/styles")
require("prototypes/gui-sprites")
require("prototypes/selection-tool")
require("prototypes/custom-inputs")
2 changes: 1 addition & 1 deletion info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tape_measure_tool",
"version": "0.1.1",
"version": "0.1.2",
"title": "Tape Measure",
"author": "Muppet9010",
"contact": "",
Expand Down
15 changes: 13 additions & 2 deletions locale/en/english.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ tape-measure=Tape Measure
tape-measure=Either click 2 points or drag a rectangle to measure. Right click to discard tape measure.



[gui-caption]
results-table-width-title=Width
results-table-depth-title=Depth
Expand All @@ -21,9 +20,21 @@ results-table-width-title=Left to right
results-table-depth-title=Top to bottom
results-table-distance-title=Exact Distance
results-table-tile-title=Number of tiles selected including start and end tiles
get-tape-measure=Get a tape measure item
get-tape-measure=Get a tape measure item (__CONTROL__get-tape-measure__)


[player-message]
first-point=First Point
second-point=Second Point


[controls]
get-tape-measure=Get Tape Measure Tool


[mod-setting-name]
show-mod-button=Show Mod Button


[mod-setting-description]
show-mod-button=If mod button not shown then only the shortcut key (__CONTROL__get-tape-measure__) can be used to get a tape measure tool.
8 changes: 8 additions & 0 deletions prototypes/custom-inputs.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
data:extend({
{
type = "custom-input",
name = "get-tape-measure",
key_sequence = "CONTROL + M",
consuming = "none"
}
})
10 changes: 6 additions & 4 deletions scripts/gui.lua
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,17 @@ end
function Gui.RecreateModButton(player)
local modFlow = player.gui.top["tape-measure-mod-flow"]
if modFlow then modFlow.destroy() end
modFlow = player.gui.top.add{type="flow", name="tape-measure-mod-flow", style = "tm_padded_horizontal_flow", direction = "horizontal"}
modFlow.add{type="sprite-button", name="tape-measure-mod-button", tooltip={"gui-tooltip.mod-toggle-button"}, sprite="tape-measure", style = "tm_mod_button_sprite"}

Gui.CloseGui(player)
if settings.get_player_settings(player)["show-mod-button"].value then
modFlow = player.gui.top.add{type="flow", name="tape-measure-mod-flow", style = "tm_padded_horizontal_flow", direction = "horizontal"}
modFlow.add{type="sprite-button", name="tape-measure-mod-button", tooltip={"gui-tooltip.mod-toggle-button"}, sprite="tape-measure", style = "tm_mod_button_sprite"}
end
end


function Gui.RecreateModButtonForAll()
function Gui.RecreateAllGuisForAll()
for _, player in pairs(game.players) do
Gui.CloseGui(player)
Gui.RecreateModButton(player)
end
end
Expand Down
7 changes: 7 additions & 0 deletions scripts/measure.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
local Gui = require("scripts/gui")
local Utils = require("utility/utils")
local MeasureGui = require("scripts/measure-gui")
local Measure = {}


Expand Down Expand Up @@ -76,4 +77,10 @@ function Measure.OnModItemOpenedEvent(eventData)
end


function Measure.OnGetTapeMeasureCustomInput(event)
local player = game.players[event.player_index]
MeasureGui.GivePlayerTapeMeasure(player)
end


return Measure
9 changes: 9 additions & 0 deletions settings.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
data:extend({
{
name = "show-mod-button",
type = "bool-setting",
default_value = true,
setting_type = "runtime-per-user",
order = "1001"
}
})

0 comments on commit 3166e0e

Please sign in to comment.