Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup deprecated metadata access for tools #233

Merged
merged 4 commits into from
Jun 9, 2022
Merged

Conversation

S-S-X
Copy link
Member

@S-S-X S-S-X commented Oct 31, 2021

Cleanup metadata access functions used by Technic power tools.
See issue #114

Option 1, requires compatibility shims

  • Verify that new metadata access is fully compatible with old tools.
    • Old partially charged tools should work after update.
    • Charge level should not change during update.
  • Verify that tools energy usage has not changed.

Tools continue playing with manual wear and charge storage reads/writes, storage cannot be updated easily in future.
Requires dirty workarounds if deprecated functions will be removed (still manual serialization and data storage in meta field with empty key).

Option 2, break compatibility (31abc4e)

  • New API can completely handle all current use cases.
    • Tool implementation can work without manually handling charge values.
    • Tools can be recharged properly without manually handling charge values.
    • Actual data storage is completely hidden behind API to allow future updates without breaking compatibility.

For this PR option 2 requires at least allowing charge value input/output for technic.use_RE_charge.
API proposal, tools never touch wear or charge values directly:

  • technic.use_RE_charge(itemstack, amount)
    • For simple tools, checks for creative, attempts to use charge and sets wear values if needed, returns success.
    • Is enough for all tools where charge usage is known before actual operation that uses charge.
    • Does not require any knowledge about wear values or underlying charge mechanism.
    • Simplest possible tool only registers itself as power tool and calls this function when used.
  • technic.get_RE_charge(itemstack)
    • For advanced use where charge values can be dynamic
    • Returns current charge value.
  • technic.set_RE_charge(itemstack, charge)
    • For advanced use where charge values can be dynamic.
    • Sets charge value. Also sets wear values if needed.

Testing

  • Digtron battery holder
    • Accept correct charged items
      • Fixed problem not accepting charged items from tubes
    • Gains correct amounts of heat
    • Does not accept items without charge
    • Does not accept technic canisters or things that are not power tools
    • Works correctly even if you force such items into container
      Crashes which is expected as I did remove all guards and wanted it to cause error if someone calls function with invalid stack. However checks are simple and crashes are not fun: accepts invalid stacks and logs red error to notify server admin about problems in some mod code.
    • This list is going towards checking actual digtron bugs, methods are copy paste from digtron master
  • Tools included with technic (I've used all tools during development and most likely everything works, add check mark when tested with latest changes)
    • Vacuum
    • Chainsaw
      usable mineunit tests included but disabled (chainsaw mk3 but it is basically same)
    • Mining drills
    • Prospector
      This tool will lose configuration
      Data migration added for configuration
    • Multimeter
      ✔️ some automated tests included
    • Mining lasers
    • Flashlight
      ✔️ some automated tests included
    • Canisters (on_refill, charging/discharging rejected)
  • Battery box power tool charging
    • Can charge tools, wear indicator seems correct
      ✔️ some automated tests included
    • Can discharge tools, wear level seems correct
      ✔️ some automated tests included

Notes

  • Creative mode disables power requirements so do not use that while testing.
  • So far 262 insertions(+), 419 deletions(-) excluding compatibility shims, reduces lines of code significantly while providing usable API.

Compatibility

Merged Pull request Mod source file ContentDB
TODO (was already broken, see #236) technictrain Yes
Forum topic, requires repository technic_addons
technic_addons.zip
Yes
Full compatibility Emojigit/technic_grass_clean#2
Minimal compatibility Emojigit/technic_grass_clean#3
technic_grass_clean Yes
TODO moretechnictools No
Minimal compatibility: minetest-mods/mychisel#8
Full compatibility: minetest-mods/mychisel#9
mychisel No
TODO turtle No
Full compatibility berengma/antipest#2
Minimal compatibility berengma/antipest#1
antipest No
TODO (currently doesn't use technic, tool is disabled) water_life Yes
berengma/pocketnuke#3 pocketnuke No
TODO teletool Yes
✔️ Override included digtron Yes
✔️ Full compatibility berengma/farming_nextgen#18
Minimal compatibility berengma/farming_nextgen#19
farming_nextgen No
✔️ Minimal compatibility SwissalpS/replacer#31 replacer No
✔️ Full compatibility OgelGames/powerbanks#8 powerbanks Yes
✔️ Fork OgelGames/powerbanks X X

(linked just one file / repo, some repos contain more)

@S-S-X S-S-X added Cleanup Cleanup of bad code or other redundant/unnecessary stuff Testing needed labels Oct 31, 2021
@S-S-X

This comment has been minimized.

@S-S-X

This comment has been minimized.

@S-S-X S-S-X added this to the 2.0.0 milestone Oct 31, 2021
@OgelGames

This comment has been minimized.

This was referenced Nov 1, 2021
@S-S-X

This comment has been minimized.

@SwissalpS

This comment has been minimized.

@S-S-X

This comment has been minimized.

@SwissalpS

This comment has been minimized.

@S-S-X

This comment was marked as outdated.

@S-S-X S-S-X force-pushed the issue-114-tools branch 2 times, most recently from 6f4f378 to 4673c37 Compare November 4, 2021 19:49
@S-S-X

This comment has been minimized.

technic/tools/vacuum.lua Outdated Show resolved Hide resolved
technic/init.lua Show resolved Hide resolved
technic/register.lua Outdated Show resolved Hide resolved
@github-actions
Copy link

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.04% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/LV/solar_panel.lua               42   2      95.45%
machines/network.lua                      397  22     94.75%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
machines/register/grindings.lua           42   5      89.36%
register.lua                              25   3      89.29%
machines/LV/lamp.lua                      110  14     88.71%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/switching_station.lua            76   25     75.25%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/other/injector.lua               72   39     64.86%
machines/switching_station_globalstep.lua 39   22     63.93%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
helpers.lua                               57   96     37.25%
machines/HV/nuclear_reactor.lua           119  205    36.73%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 0.59929 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.044193 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 10.144236 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

@S-S-X
Copy link
Member Author

S-S-X commented Mar 13, 2022

Cleaned up commits. Previous:
a4b00ec Metadata migration for prospector
09d898f Fix tool spec, mod loading was updated
fd24d80 Interaction and API tests for power tools
a2a4203 Drop charge value completely
0998183 Remove deprecated power tool functions
9026499 Digtron battery holder compatibility
c29af5d Use ephemeral sounds for tools
408b6eb Cleanup deprecated metadata access for tools

To:
58373c2 Interaction and API tests for power tools
502bf9e Power tool compatibility shims
5f28b16 Use ephemeral sounds for tools
7206b8d Add power tool API, refactor existing tools

Maybe commit "5f28b16 Use ephemeral sounds for tools" is not needed, only kept it because that one is not exactly about power tool API but more generic stuff that just happens to be here...

Some latest stats for LoC against current master (ec3a52c):

  • Excluding compatibility and tests: 13 files changed, 273 insertions(+), 429 deletions(-)
  • Including compatibility, excluding tests: 15 files changed, 393 insertions(+), 430 deletions(-)
  • Only compatibility (technic/machines/compat): 2 files changed, 120 insertions(+), 1 deletion(-)
  • Only tests (technic/spec): 1 file changed, 453 insertions(+)

@BuckarooBanzay
Copy link
Member

BuckarooBanzay commented Mar 17, 2022

@BuckarooBanzay can we test this on Pandorabox test server? Technic tool mods should be updated for testing, so far only few have already merged compatibility PRs.

These would require using fork for testing:

* powerbanks (can also ignore powerbanks for now)

Already some time since other PRs merged but not sure about test server state... So these should be ready but must be up to date:

* farming_nextgen

* replacer

Was there other Technic power tools not included in Technic itself on Pandorabox?

Also added data migration for prospector. Bit better UX as that one actually stores some configuration data.

Sorry for the delay, test-server is up and running with restore from 2022-03-16 02:00 UTC:

  • technic on branch issue-114-tools
  • powerbanks on branch meta-api-fix

No errors on startup, haven't tested anything else yet.
I'll update and test a few more open update-PR's when i have some more free-time 😉

@S-S-X
Copy link
Member Author

S-S-X commented Mar 17, 2022

No errors on startup, haven't tested anything else yet.
I'll update and test a few more open update-PR's when i have some more free-time 😉

I'll try to test this one later today so no need to worry about it. Will also try to advertise it a bit for some chat discussion if there's other people who'd be interested in some testing 🥼

@S-S-X
Copy link
Member Author

S-S-X commented Mar 17, 2022

Everything seemed to work, did not test all tools on pandorabox test server yet as I've been testing also on my own dev server.
Mostly tested migration stuff verifying that few selected old tools work and wont be losing charge and are using charge correctly.
Power banks worked as items but lost charge immediately when placed to world as nodes, did not test charging because of that as it would require setting charge manually and better to test after node meta things is fixed.

edit. SwissalpS told that "existing in-world bat-packs work fine, only newly placed ones are nerfed :)"

@S-S-X
Copy link
Member Author

S-S-X commented Mar 18, 2022

@OgelGames problem with power bank is that it is trying to use Technic power tool API on nodes:
ERROR[Server]: technic.set_RE_charge item not registered as power tool:powerbanks:powerbank_mk1_node
For node metadata it should simply be using its own metadata storage implementation instead of Technic power tool API.

Not really sure if that is exact problem or if it is just mistake using node name when item name should be used.
At least it seems that node and item are different things: powerbanks:powerbank_mk1_node and powerbanks:powerbank_mk1

@OgelGames
Copy link
Contributor

Not really sure if that is exact problem or if it is just mistake using node name when item name should be used. At least it seems that node and item are different things: powerbanks:powerbank_mk1_node and powerbanks:powerbank_mk1

Yep, I think that is the problem, I might have to change how the placing of powerbanks works... 🤔

@github-actions
Copy link

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.03% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/LV/solar_panel.lua               42   2      95.45%
machines/network.lua                      397  22     94.75%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
register.lua                              26   3      89.66%
machines/register/grindings.lua           42   5      89.36%
machines/LV/lamp.lua                      110  14     88.71%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/switching_station.lua            76   25     75.25%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/other/injector.lua               72   39     64.86%
machines/switching_station_globalstep.lua 39   22     63.93%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
helpers.lua                               57   97     37.01%
machines/HV/nuclear_reactor.lua           119  205    36.73%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 0.531635 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.035247 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 8.820792 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

technic/helpers.lua Outdated Show resolved Hide resolved
@github-actions
Copy link

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.03% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/LV/solar_panel.lua               42   2      95.45%
machines/network.lua                      397  22     94.75%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
register.lua                              26   3      89.66%
machines/register/grindings.lua           42   5      89.36%
machines/LV/lamp.lua                      110  14     88.71%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/switching_station.lua            76   25     75.25%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/other/injector.lua               72   39     64.86%
machines/switching_station_globalstep.lua 39   22     63.93%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
helpers.lua                               57   97     37.01%
machines/HV/nuclear_reactor.lua           119  205    36.73%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 0.539543 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.037892 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 9.409766 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

@github-actions
Copy link

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.03% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/LV/solar_panel.lua               42   2      95.45%
machines/network.lua                      397  22     94.75%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
register.lua                              26   3      89.66%
machines/register/grindings.lua           42   5      89.36%
machines/LV/lamp.lua                      110  14     88.71%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/switching_station.lua            76   25     75.25%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/other/injector.lua               72   39     64.86%
machines/switching_station_globalstep.lua 39   22     63.93%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
helpers.lua                               57   97     37.01%
machines/HV/nuclear_reactor.lua           119  205    36.73%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 0.503587 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.035039 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 8.685678 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

@S-S-X
Copy link
Member Author

S-S-X commented May 6, 2022

Will merge this soon to get clean table for future things, waiting for some time but this has been tested since... I don't know anymore.. but probably gone through more testing than any PR before merge so far and with a many testers too.

I'll add some quick fix for power banks through fork + additional pr first if not updated by then. After that will be updating other mods if needed (and perma-forking those if that's what it takes).

@github-actions
Copy link

github-actions bot commented May 6, 2022

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.07% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/network.lua                      404  19     95.51%
machines/LV/solar_panel.lua               42   2      95.45%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
register.lua                              26   3      89.66%
machines/register/grindings.lua           42   5      89.36%
machines/LV/lamp.lua                      110  14     88.71%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
machines/switching_station.lua            80   32     71.43%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/switching_station_globalstep.lua 31   16     65.96%
machines/other/injector.lua               72   39     64.86%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
helpers.lua                               57   97     37.01%
machines/HV/nuclear_reactor.lua           119  205    36.73%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 0.500946 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.034318 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 8.625194 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

S-S-X added 4 commits June 5, 2022 18:23
Cleanup deprecated metadata access for tools

Fix mining drill translations

Remove deprecated power tool functions

Drop charge value completely

Ensure use_RE_charge always uses at least 1 point

Use precalculated wear factor, remove negative set_wear hack...

Use technic_max_charge instead of max_charge in item definition, accept both

Log errors instead of failing with invalid power tool stack

Metadata migration for prospector

Cleanup tool definition max_charge, get_RE_charge log warning for unknown stacks
Digtron battery holder compatibility
Add some tests for charging and using tools

Fix tool spec, mod loading was updated

Tests using air as default node
@github-actions
Copy link

github-actions bot commented Jun 5, 2022

Click for detailed source code test coverage report

Test coverage report for Technic CNC 87.33% in 11/14 files:

File                             Hits Missed Coverage
-----------------------------------------------------
programs.lua                   263  0      100.00%
materials/technic_worldgen.lua 32   0      100.00%
materials/init.lua             14   0      100.00%
materials/default.lua          183  0      100.00%
materials/basic_materials.lua  17   0      100.00%
init.lua                       16   0      100.00%
digilines.lua                  55   0      100.00%
cnc.lua                        53   0      100.00%
formspec.lua                   104  7      93.69%
api.lua                        217  43     83.46%
pipeworks.lua                  25   13     65.79%
materials/moreblocks.lua       0    29     0.00%
materials/ethereal.lua         0    37     0.00%
materials/bakedclay.lua        0    13     0.00%

Test coverage report for technic chests 45.56% in 6/6 files:

File          Hits Missed Coverage
----------------------------------
chests.lua    102  18     85.00%
init.lua      34   18     65.38%
register.lua  84   78     51.85%
formspec.lua  76   93     44.97%
inventory.lua 10   100    9.09%
digilines.lua 2    61     3.17%

Test coverage report for technic 62.04% in 96/96 files:

File                                      Hits Missed Coverage
--------------------------------------------------------------
max_lag.lua                               12   0      100.00%
machines/register/init.lua                15   0      100.00%
machines/register/freezer_recipes.lua     13   0      100.00%
machines/other/init.lua                   8    0      100.00%
machines/MV/solar_array.lua               12   0      100.00%
machines/MV/init.lua                      17   0      100.00%
machines/MV/grinder.lua                   17   0      100.00%
machines/MV/generator.lua                 9    0      100.00%
machines/MV/freezer.lua                   17   0      100.00%
machines/MV/extractor.lua                 17   0      100.00%
machines/MV/electric_furnace.lua          17   0      100.00%
machines/MV/compressor.lua                17   0      100.00%
machines/MV/centrifuge.lua                17   0      100.00%
machines/MV/cables.lua                    40   0      100.00%
machines/MV/battery_box.lua               17   0      100.00%
machines/MV/alloy_furnace.lua             19   0      100.00%
machines/LV/solar_array.lua               11   0      100.00%
machines/LV/init.lua                      17   0      100.00%
machines/LV/grinder.lua                   16   0      100.00%
machines/LV/generator.lua                 9    0      100.00%
machines/LV/electric_furnace.lua          15   0      100.00%
machines/LV/compressor.lua                20   0      100.00%
machines/LV/cables.lua                    40   0      100.00%
machines/LV/battery_box.lua               15   0      100.00%
machines/LV/alloy_furnace.lua             17   0      100.00%
machines/HV/solar_array.lua               11   0      100.00%
machines/HV/init.lua                      12   0      100.00%
machines/HV/grinder.lua                   17   0      100.00%
machines/HV/generator.lua                 9    0      100.00%
machines/HV/electric_furnace.lua          17   0      100.00%
machines/HV/compressor.lua                17   0      100.00%
machines/HV/cables.lua                    39   0      100.00%
machines/HV/battery_box.lua               17   0      100.00%
legacy.lua                                33   0      100.00%
items.lua                                 107  0      100.00%
crafts.lua                                133  0      100.00%
machines/LV/led.lua                       73   1      98.65%
config.lua                                51   1      98.08%
machines/register/compressor_recipes.lua  36   1      97.30%
machines/LV/geothermal.lua                75   3      96.15%
machines/register/cables.lua              96   4      96.00%
machines/register/solar_array.lua         46   2      95.83%
machines/network.lua                      404  19     95.51%
machines/LV/solar_panel.lua               42   2      95.45%
machines/register/alloy_recipes.lua       40   3      93.02%
tools/init.lua                            13   1      92.86%
machines/LV/water_mill.lua                67   6      91.78%
init.lua                                  22   2      91.67%
register.lua                              26   3      89.66%
machines/LV/lamp.lua                      111  13     89.52%
machines/register/grindings.lua           42   5      89.36%
machines/register/grinder_recipes.lua     106  16     86.89%
tools/flashlight.lua                      64   13     83.12%
util/throttle.lua                         9    2      81.82%
machines/register/battery_box.lua         227  52     81.36%
machines/register/machine_base.lua        165  41     80.10%
machines/LV/extractor.lua                 18   5      78.26%
machines/register/recipes.lua             62   20     75.61%
machines/register/centrifuge_recipes.lua  21   7      75.00%
radiation.lua                             262  89     74.64%
machines/switching_station.lua            80   32     71.43%
effects.lua                               5    2      71.43%
machines/overload.lua                     12   5      70.59%
machines/MV/wind_mill.lua                 46   22     67.65%
machines/supply_converter.lua             95   46     67.38%
machines/other/coal_furnace.lua           2    1      66.67%
machines/switching_station_globalstep.lua 31   16     65.96%
machines/other/injector.lua               72   39     64.86%
tools/multimeter.lua                      130  78     62.50%
machines/MV/hydro_turbine.lua             43   26     62.32%
machines/MV/tool_workshop.lua             56   34     62.22%
machines/register/generator.lua           122  88     58.10%
tools/cans.lua                            53   48     52.48%
machines/power_monitor.lua                40   38     51.28%
machines/init.lua                         56   54     50.91%
tools/mining_lasers.lua                   36   35     50.70%
machines/other/coal_alloy_furnace.lua     63   63     50.00%
machines/LV/music_player.lua              46   46     50.00%
machines/other/constructor.lua            67   69     49.26%
tools/tree_tap.lua                        24   27     47.06%
tools/vacuum.lua                          16   20     44.44%
machines/register/common.lua              50   64     43.86%
machines/HV/forcefield.lua                103  155    39.92%
machines/HV/nuclear_reactor.lua           119  205    36.73%
helpers.lua                               54   100    35.06%
machines/HV/quarry.lua                    122  245    33.24%
tools/sonic_screwdriver.lua               16   33     32.65%
machines/compat/api.lua                   16   34     32.00%
tools/chainsaw.lua                        37   80     31.62%
machines/other/frames.lua                 184  445    29.25%
machines/compat/tools.lua                 5    13     27.78%
tools/mining_drill.lua                    65   195    25.00%
machines/other/anchor.lua                 14   74     15.91%
tools/prospector.lua                      14   99     12.39%
machines/compat/digtron.lua               4    41     8.89%
machines/register/extractor_recipes.lua   6    65     8.45%

Raw test runner output for geeks:

CNC:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
31 successes / 0 failures / 0 errors / 0 pending : 4.414275 seconds

Chests:

W:	Configuration: invalid key	exclude_textures
●●●●●
5 successes / 0 failures / 0 errors / 0 pending : 0.040852 seconds

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 11.70723 seconds

Pending → spec/api_spec.lua @ 133
Technic API Machine registration registers my_mod:my_battery
spec/api_spec.lua:133: Battery box registration does not include all fields

Pending → spec/api_spec.lua @ 190
Technic API Machine registration registers my_mod:machine_base
spec/api_spec.lua:190: Base machine registration does not include all fields

Pending → spec/api_spec.lua @ 285
Technic API internals technic.cables TBD, misleading name and should be updated
spec/api_spec.lua:285: TBD technic.cables naming and need, see technic networks data for possible options

Pending → spec/supply_converter_spec.lua @ 78
Supply converter building overloads network
spec/supply_converter_spec.lua:78: overload does not work with supply converter

@S-S-X
Copy link
Member Author

S-S-X commented Jun 8, 2022

Powerbanks compatibility done here: https://github.com/S-S-X/powerbanks/tree/technic-plus and this fork should be used, this time I also did quick testing in game and it seems to work fine.

Did not open PR for powerbanks compatibility.
Will merge this PR tomorrow.

@OgelGames
Copy link
Contributor

I've pushed a commit to OgelGames/powerbanks#8 to fix the bug (sorry for forgetting about that). I tested it with this PR, the current master and the minetest-mods version, and it seems to work correctly with all of them now.

I'll be merging the powerbanks PR later today, so if there's anything you think I've missed, let me know :)

@S-S-X S-S-X merged commit be5b7cf into master Jun 9, 2022
@S-S-X S-S-X mentioned this pull request Jun 13, 2022
@OgelGames OgelGames deleted the issue-114-tools branch October 31, 2022 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cleanup Cleanup of bad code or other redundant/unnecessary stuff
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants