Commit 1eefa09083430f20f5028a10a22f393b15dbf604
1 parent
ad9f5b12
visual overhaul in version 0.18.3
Showing
8 changed files
with
91 additions
and
65 deletions
CHANGELOG.md
| @@ -6,8 +6,20 @@ and this project adheres to the versioning of Factorio, so 0.18.x will be at lea | @@ -6,8 +6,20 @@ and this project adheres to the versioning of Factorio, so 0.18.x will be at lea | ||
| 6 | 6 | ||
| 7 | ## [Released] | 7 | ## [Released] |
| 8 | 8 | ||
| 9 | +## [0.18.3] - 2020-06-07 | ||
| 10 | +### General | ||
| 11 | +A small visual overhaul of the mod | ||
| 12 | +### Added | ||
| 13 | +- Added the possibility to "calculate further" (especially usefull when setting "Clear equation on calculation" is set). When the equation doesn't start with a number, character or parenthesis (so it assumes it starts with a math symbol) it will take the previous result and prepend it to the current equation. | ||
| 14 | + | ||
| 15 | +### Changed | ||
| 16 | +- Updated the UI a bit to match it in color a bit more to the Windows calculator | ||
| 17 | +- Updated also the icon on the shortcut to better distinguish it | ||
| 18 | + | ||
| 9 | ## [0.18.2] - 2020-06-06 | 19 | ## [0.18.2] - 2020-06-06 |
| 20 | +### General | ||
| 10 | Based on user feedback updated the mod | 21 | Based on user feedback updated the mod |
| 22 | + | ||
| 11 | ### Added | 23 | ### Added |
| 12 | - new easter egg :-) | 24 | - new easter egg :-) |
| 13 | - added more math.lib functions | 25 | - added more math.lib functions |
| @@ -26,7 +38,9 @@ Based on user feedback updated the mod | @@ -26,7 +38,9 @@ Based on user feedback updated the mod | ||
| 26 | - Fixed sqrt(-1) equaling "na" because of the rounding fix from 0.18.1. It does now show "NaN" again | 38 | - Fixed sqrt(-1) equaling "na" because of the rounding fix from 0.18.1. It does now show "NaN" again |
| 27 | 39 | ||
| 28 | ## [0.18.1] - 2020-06-06 | 40 | ## [0.18.1] - 2020-06-06 |
| 41 | +### General | ||
| 29 | Based on user feedback updated the mod | 42 | Based on user feedback updated the mod |
| 43 | + | ||
| 30 | ### Added | 44 | ### Added |
| 31 | - Shortcut for opening the calculator and automatically focus on the input (Default: Ctrl+Shift+C) | 45 | - Shortcut for opening the calculator and automatically focus on the input (Default: Ctrl+Shift+C) |
| 32 | 46 |
calcui-styles.lua
| @@ -2,21 +2,9 @@ | @@ -2,21 +2,9 @@ | ||
| 2 | 2 | ||
| 3 | local default_gui = data.raw["gui-style"].default | 3 | local default_gui = data.raw["gui-style"].default |
| 4 | 4 | ||
| 5 | -default_gui.calcui_sprite_obj_style = { | ||
| 6 | - type = "button_style", | ||
| 7 | - -- parent="button_style", | ||
| 8 | - top_padding = 0, | ||
| 9 | - right_padding = 0, | ||
| 10 | - bottom_padding = 0, | ||
| 11 | - left_padding = 0, | ||
| 12 | - height = 32, | ||
| 13 | - width = 32, | ||
| 14 | - scalable = false | ||
| 15 | -} | ||
| 16 | - | ||
| 17 | default_gui.calcui_button_style = { | 5 | default_gui.calcui_button_style = { |
| 18 | type = "button_style", | 6 | type = "button_style", |
| 19 | - -- parent="button_style", | 7 | + parent = "icon_button", |
| 20 | top_padding = 0, | 8 | top_padding = 0, |
| 21 | right_padding = 0, | 9 | right_padding = 0, |
| 22 | bottom_padding = 0, | 10 | bottom_padding = 0, |
| @@ -25,33 +13,20 @@ default_gui.calcui_button_style = { | @@ -25,33 +13,20 @@ default_gui.calcui_button_style = { | ||
| 25 | width = 50, | 13 | width = 50, |
| 26 | scalable = false | 14 | scalable = false |
| 27 | } | 15 | } |
| 28 | - | ||
| 29 | -default_gui.calcui_textfield_style = { | ||
| 30 | - type = "textbox_style", | ||
| 31 | - width = 212 | 16 | +default_gui.calcui_button_style_red = { |
| 17 | + type = "button_style", | ||
| 18 | + parent = "calcui_button_style", | ||
| 19 | + sprite = "sprite_calcui_red" | ||
| 32 | } | 20 | } |
| 33 | - | ||
| 34 | -default_gui.calcui_table_style = { | ||
| 35 | - type = "table_style", | ||
| 36 | - horizontal_spacing = 5, | ||
| 37 | - vertical_spacing = 1, | ||
| 38 | - resize_row_to_width = false, | ||
| 39 | - resize_to_row_height = false, | 21 | +default_gui.calcui_button_style_light = { |
| 22 | + type = "button_style", | ||
| 23 | + parent = "calcui_button_style", | ||
| 24 | + sprite = "sprite_calcui_light" | ||
| 40 | } | 25 | } |
| 41 | - | ||
| 42 | -default_gui.calcui_scroll_pane_style = { | ||
| 43 | - type = "scroll_pane_style", | ||
| 44 | - -- parent="scroll_pane_style", | ||
| 45 | - -- flow_style = | ||
| 46 | - -- { | ||
| 47 | - -- type = "flow_style", | ||
| 48 | - -- parent = "flow_style" | ||
| 49 | - -- }, | ||
| 50 | - resize_row_to_width = true, | ||
| 51 | - resize_to_row_height = false, | ||
| 52 | - minimal_height=128, | ||
| 53 | - maximal_height=400, | ||
| 54 | - max_on_row = 1, | 26 | +default_gui.calcui_button_style_dark = { |
| 27 | + type = "button_style", | ||
| 28 | + parent = "calcui_button_style", | ||
| 29 | + sprite = "sprite_calcui_dark" | ||
| 55 | } | 30 | } |
| 56 | 31 | ||
| 57 | data:extend({ | 32 | data:extend({ |
| @@ -75,5 +50,26 @@ data:extend({ | @@ -75,5 +50,26 @@ data:extend({ | ||
| 75 | filename = "__calculator-ui__/graphics/calculator.png", | 50 | filename = "__calculator-ui__/graphics/calculator.png", |
| 76 | width = 64, | 51 | width = 64, |
| 77 | height = 64 | 52 | height = 64 |
| 53 | + }, | ||
| 54 | + { | ||
| 55 | + type = "sprite", | ||
| 56 | + name = "sprite_calcui_red", | ||
| 57 | + filename = "__calculator-ui__/graphics/red.png", | ||
| 58 | + width = 50, | ||
| 59 | + height = 50 | ||
| 60 | + }, | ||
| 61 | + { | ||
| 62 | + type = "sprite", | ||
| 63 | + name = "sprite_calcui_light", | ||
| 64 | + filename = "__calculator-ui__/graphics/light.png", | ||
| 65 | + width = 50, | ||
| 66 | + height = 50 | ||
| 67 | + }, | ||
| 68 | + { | ||
| 69 | + type = "sprite", | ||
| 70 | + name = "sprite_calcui_dark", | ||
| 71 | + filename = "__calculator-ui__/graphics/dark.png", | ||
| 72 | + width = 50, | ||
| 73 | + height = 50 | ||
| 78 | } | 74 | } |
| 79 | }) | 75 | }) |
| 80 | \ No newline at end of file | 76 | \ No newline at end of file |
calculator.lua
| @@ -95,41 +95,42 @@ function show_calculator(player) | @@ -95,41 +95,42 @@ function show_calculator(player) | ||
| 95 | 95 | ||
| 96 | local display = col1.add({ | 96 | local display = col1.add({ |
| 97 | type = "textfield", | 97 | type = "textfield", |
| 98 | - style = "calcui_textfield_style", | ||
| 99 | caption = "", | 98 | caption = "", |
| 100 | name = "calcui_display" | 99 | name = "calcui_display" |
| 101 | }) | 100 | }) |
| 101 | + display.style.width = 212 | ||
| 102 | 102 | ||
| 103 | local row1 = col1.add({type="flow", name="calcui_col1_row1", direction="horizontal"}) | 103 | local row1 = col1.add({type="flow", name="calcui_col1_row1", direction="horizontal"}) |
| 104 | - row1.add({type="button", style="calcui_button_style", caption="CE", name="calcui_button_CE"}) -- CE = Clear Entry (just this line) | ||
| 105 | - row1.add({type="button", style="calcui_button_style", caption="C", name="calcui_button_C"}) -- C = Clear (all, past results as well) | ||
| 106 | - row1.add({type="button", style="calcui_button_style", caption="BS", name="calcui_button_BS"}) | ||
| 107 | - row1.add({type="button", style="calcui_button_style", caption="/", name="calcui_button_DIV"}) | 104 | + row1.add({type="sprite-button", style="calcui_button_style_light", caption="CE", name="calcui_button_CE"}).sprite = "sprite_calcui_light" -- CE = Clear Entry (just this line) |
| 105 | + row1.add({type="sprite-button", style="calcui_button_style_light", caption="C", name="calcui_button_C"}).sprite = "sprite_calcui_light" -- C = Clear (all, past results as well) | ||
| 106 | + row1.add({type="sprite-button", style="calcui_button_style_light", caption="BS", name="calcui_button_BS"}).sprite = "sprite_calcui_light" | ||
| 107 | + row1.add({type="sprite-button", style="calcui_button_style_light", caption="/", name="calcui_button_DIV"}).sprite = "sprite_calcui_light" | ||
| 108 | 108 | ||
| 109 | local row2 = col1.add({type="flow", name="calcui_col1_row2", direction="horizontal"}) | 109 | local row2 = col1.add({type="flow", name="calcui_col1_row2", direction="horizontal"}) |
| 110 | - row2.add({type="button", style="calcui_button_style", caption="7", name="calcui_button_7"}) | ||
| 111 | - row2.add({type="button", style="calcui_button_style", caption="8", name="calcui_button_8"}) | ||
| 112 | - row2.add({type="button", style="calcui_button_style", caption="9", name="calcui_button_9"}) | ||
| 113 | - row2.add({type="button", style="calcui_button_style", caption="*", name="calcui_button_MUL"}) | 110 | + row2.add({type="sprite-button", style="calcui_button_style_dark", caption="7", name="calcui_button_7"}).sprite = "sprite_calcui_dark" |
| 111 | + row2.add({type="sprite-button", style="calcui_button_style_dark", caption="8", name="calcui_button_8"}).sprite = "sprite_calcui_dark" | ||
| 112 | + row2.add({type="sprite-button", style="calcui_button_style_dark", caption="9", name="calcui_button_9"}).sprite = "sprite_calcui_dark" | ||
| 113 | + row2.add({type="sprite-button", style="calcui_button_style_light", caption="*", name="calcui_button_MUL"}).sprite = "sprite_calcui_light" | ||
| 114 | 114 | ||
| 115 | local row3 = col1.add({type="flow", name="calcui_col1_row3", direction="horizontal"}) | 115 | local row3 = col1.add({type="flow", name="calcui_col1_row3", direction="horizontal"}) |
| 116 | - row3.add({type="button", style="calcui_button_style", caption="4", name="calcui_button_4"}) | ||
| 117 | - row3.add({type="button", style="calcui_button_style", caption="5", name="calcui_button_5"}) | ||
| 118 | - row3.add({type="button", style="calcui_button_style", caption="6", name="calcui_button_6"}) | ||
| 119 | - row3.add({type="button", style="calcui_button_style", caption="-", name="calcui_button_SUB"}) | 116 | + row3.add({type="sprite-button", style="calcui_button_style_dark", caption="4", name="calcui_button_4"}).sprite = "sprite_calcui_dark" |
| 117 | + row3.add({type="sprite-button", style="calcui_button_style_dark", caption="5", name="calcui_button_5"}).sprite = "sprite_calcui_dark" | ||
| 118 | + row3.add({type="sprite-button", style="calcui_button_style_dark", caption="6", name="calcui_button_6"}).sprite = "sprite_calcui_dark" | ||
| 119 | + row3.add({type="sprite-button", style="calcui_button_style_light", caption="-", name="calcui_button_SUB"}).sprite = "sprite_calcui_light" | ||
| 120 | 120 | ||
| 121 | local row4 = col1.add({type="flow", name="calcui_col1_row4", direction="horizontal"}) | 121 | local row4 = col1.add({type="flow", name="calcui_col1_row4", direction="horizontal"}) |
| 122 | - row4.add({type="button", style="calcui_button_style", caption="1", name="calcui_button_1"}) | ||
| 123 | - row4.add({type="button", style="calcui_button_style", caption="2", name="calcui_button_2"}) | ||
| 124 | - row4.add({type="button", style="calcui_button_style", caption="3", name="calcui_button_3"}) | ||
| 125 | - row4.add({type="button", style="calcui_button_style", caption="+", name="calcui_button_ADD"}) | 122 | + row4.add({type="sprite-button", style="calcui_button_style_dark", caption="1", name="calcui_button_1"}).sprite = "sprite_calcui_dark" |
| 123 | + row4.add({type="sprite-button", style="calcui_button_style_dark", caption="2", name="calcui_button_2"}).sprite = "sprite_calcui_dark" | ||
| 124 | + row4.add({type="sprite-button", style="calcui_button_style_dark", caption="3", name="calcui_button_3"}).sprite = "sprite_calcui_dark" | ||
| 125 | + row4.add({type="sprite-button", style="calcui_button_style_light", caption="+", name="calcui_button_ADD"}).sprite = "sprite_calcui_light" | ||
| 126 | 126 | ||
| 127 | local row5 = col1.add({type="flow", name="calcui_col1_row5", direction="horizontal"}) | 127 | local row5 = col1.add({type="flow", name="calcui_col1_row5", direction="horizontal"}) |
| 128 | - row5.add({type="button", style="calcui_button_style", caption="%", name="calcui_button_PERC"}) | ||
| 129 | - row5.add({type="button", style="calcui_button_style", caption="0", name="calcui_button_0"}) | ||
| 130 | - row5.add({type="button", style="calcui_button_style", caption=".", name="calcui_button_DOT"}) | ||
| 131 | - row5.add({type="button", style="calcui_button_style", caption="=", name="calcui_button_EQU"}) | 128 | + row5.add({type="sprite-button", style="calcui_button_style_light", caption="%", name="calcui_button_PERC"}).sprite = "sprite_calcui_light" |
| 129 | + row5.add({type="sprite-button", style="calcui_button_style_dark", caption="0", name="calcui_button_0"}).sprite = "sprite_calcui_dark" | ||
| 130 | + row5.add({type="sprite-button", style="calcui_button_style_dark", caption=".", name="calcui_button_DOT"}).sprite = "sprite_calcui_dark" | ||
| 131 | + row5.add({type="sprite-button", style="calcui_button_style_red", caption="=", name="calcui_button_EQU"}).sprite = "sprite_calcui_red" | ||
| 132 | 132 | ||
| 133 | + --.sprite = "sprite_calcui_dark" | ||
| 133 | 134 | ||
| 134 | local col2 = table.add({ | 135 | local col2 = table.add({ |
| 135 | type = "flow", | 136 | type = "flow", |
| @@ -206,6 +207,7 @@ function process_ce_key(player, button) | @@ -206,6 +207,7 @@ function process_ce_key(player, button) | ||
| 206 | local root = get_gui_root(player) | 207 | local root = get_gui_root(player) |
| 207 | clear_equation(player) | 208 | clear_equation(player) |
| 208 | root.calcui.calcui_table.calcui_table_col2.calcui_display_result.caption = "=" | 209 | root.calcui.calcui_table.calcui_table_col2.calcui_display_result.caption = "=" |
| 210 | + root.calcui.calcui_table.calcui_table_col2.calcui_display_result.tooltip = "" | ||
| 209 | end | 211 | end |
| 210 | 212 | ||
| 211 | -- ---------------------------------------------------------------- | 213 | -- ---------------------------------------------------------------- |
| @@ -222,9 +224,23 @@ function process_backspace_key(player, button) | @@ -222,9 +224,23 @@ function process_backspace_key(player, button) | ||
| 222 | end | 224 | end |
| 223 | 225 | ||
| 224 | -- ---------------------------------------------------------------- | 226 | -- ---------------------------------------------------------------- |
| 225 | -function fix_equation(equation) | 227 | +function fix_equation(equation, root) |
| 226 | local result = equation | 228 | local result = equation |
| 227 | - | 229 | + local prev_result = root.calcui.calcui_table.calcui_table_col2.calcui_display_result.tooltip |
| 230 | + | ||
| 231 | + | ||
| 232 | + -- 1. visible part | ||
| 233 | + -- if equation does not start with a number or char, use the previous result (if available) and put it in front | ||
| 234 | + if not (string.match(result:sub(1, 1), "[^%w%(%)]") == nil) and prev_result then | ||
| 235 | + result = prev_result .. result | ||
| 236 | + end | ||
| 237 | + | ||
| 238 | + -- remove "math." | ||
| 239 | + result = result:gsub("math.", "") | ||
| 240 | + local new_equation = result | ||
| 241 | + | ||
| 242 | + | ||
| 243 | + -- 2. invisible part | ||
| 228 | -- fix math library shortcuts | 244 | -- fix math library shortcuts |
| 229 | local math_lib = { | 245 | local math_lib = { |
| 230 | ["abs"] = "math.abs", | 246 | ["abs"] = "math.abs", |
| @@ -267,16 +283,16 @@ function fix_equation(equation) | @@ -267,16 +283,16 @@ function fix_equation(equation) | ||
| 267 | result = result:gsub(",", ".") | 283 | result = result:gsub(",", ".") |
| 268 | result = result:gsub(";", ",") | 284 | result = result:gsub(";", ",") |
| 269 | 285 | ||
| 270 | - return result | 286 | + |
| 287 | + return result, new_equation | ||
| 271 | end | 288 | end |
| 272 | 289 | ||
| 273 | -- ---------------------------------------------------------------- | 290 | -- ---------------------------------------------------------------- |
| 274 | function process_equal_key(player, button) | 291 | function process_equal_key(player, button) |
| 275 | local root = get_gui_root(player) | 292 | local root = get_gui_root(player) |
| 276 | - | ||
| 277 | local original_equation = root.calcui.calcui_table.calcui_table_col1.calcui_display.text; | 293 | local original_equation = root.calcui.calcui_table.calcui_table_col1.calcui_display.text; |
| 278 | 294 | ||
| 279 | - equation = fix_equation(original_equation) | 295 | + equation, original_equation = fix_equation(original_equation, root) |
| 280 | 296 | ||
| 281 | -- just testing | 297 | -- just testing |
| 282 | --root.calcui.calcui_table.calcui_table_col1.calcui_display.text = equation | 298 | --root.calcui.calcui_table.calcui_table_col1.calcui_display.text = equation |
graphics/calculator.png
graphics/dark.png
0 โ 100644
190 Bytes
graphics/light.png
0 โ 100644
189 Bytes
graphics/red.png
0 โ 100644
182 Bytes