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

Compatibility for technic_set_charge/technic_get_charge #275

Merged
merged 2 commits into from
Jun 15, 2022

Conversation

S-S-X
Copy link
Member

@S-S-X S-S-X commented Jun 12, 2022

Implements minetest-mods/technic#600 for mt-mods/technic#272

This one without changing technic.get_RE_charge / technic.set_RE_charge, keeps new power tool definition methods independent.

Should also offer better compatibility with original Technic mod.

See #273 (comment)

Basically this makes technic.get_RE_charge and technic.set_RE_charge very tool specific while <itemdef>.technic_get_charge and <itemdef>.technic_set_charge will be overridable functions pointing to technic.get_RE_charge and technic.set_RE_charge by default.

Other option #273 makes technic.get_RE_charge and technic.set_RE_charge universally compatible while <itemdef>.technic_get_charge and <itemdef>.technic_set_charge would be overridable functions not defined by default and never calling through technic.get_RE_charge or technic.set_RE_charge.

@S-S-X S-S-X added the Enhancement New feature or request label Jun 12, 2022
@S-S-X
Copy link
Member Author

S-S-X commented Jun 12, 2022

Did not include extensions for compatibility shims here to keep core implementation clean for reviews.
I think I'll create another small PR for extended compatibility shims.

@S-S-X

This comment was marked as outdated.

@OgelGames
Copy link
Contributor

OgelGames commented Jun 13, 2022

Yeah, this is better 👍 Looks like technic.get_RE_charge is missing the second return value though, and also the PR is missing the additions to the API docs.

technic/register.lua Outdated Show resolved Hide resolved
@S-S-X
Copy link
Member Author

S-S-X commented Jun 13, 2022

This one should be ready now, linked pull request is from tool-compatibility-2 branch and target is this PR branch tool-charge-api-2

Linked PR only touches compatibility shims technic/machines/compat/tools.lua and Mineunit tests.

@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.05% 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%
machines/LV/lamp.lua                      111  13     89.52%
machines/register/grindings.lua           42   5      89.36%
register.lua                              28   4      87.50%
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         228  52     81.43%
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.410117 seconds

Chests:

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

Technic:

●◌◌●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●◌●●●●●●●●●●●●●●●●●●●●●●●●●●
197 successes / 0 failures / 0 errors / 4 pending : 11.623739 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 S-S-X merged commit e943e46 into master Jun 15, 2022
@BuckarooBanzay
Copy link
Member

nice 👍

@OgelGames OgelGames deleted the tool-charge-api-2 branch October 31, 2022 07:10
@Athozus Athozus added this to the 2.0.0 milestone Apr 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Compatibility Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants