Commit 1eefa09083430f20f5028a10a22f393b15dbf604

Authored by Stefan Wichmann
1 parent ad9f5b12

visual overhaul in version 0.18.3

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

387 Bytes | W: | H:

2.42 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
graphics/dark.png 0 โ†’ 100644

190 Bytes

graphics/light.png 0 โ†’ 100644

189 Bytes

graphics/red.png 0 โ†’ 100644

182 Bytes

info.json
1 { 1 {
2 "name": "calculator-ui", 2 "name": "calculator-ui",
3 - "version": "0.18.2", 3 + "version": "0.18.3",
4 "title": "Calculator UI", 4 "title": "Calculator UI",
5 "author": "Wichu", 5 "author": "Wichu",
6 "factorio_version": "0.18", 6 "factorio_version": "0.18",