Skip to content

Commit 1fe4b32

Browse files
authored
Switch to get_charge, set_charge, use_charge (#396)
1 parent 9ed03b8 commit 1fe4b32

File tree

14 files changed

+37
-33
lines changed

14 files changed

+37
-33
lines changed

technic/doc/api.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ Power tool API
6464
* Callback will be used to get itemstack charge and max\_charge.
6565
* Have to return values `charge, max_charge`.
6666
* E.g. `local charge, maxcharge = itemdef.technic_get_charge(itemstack)`.
67-
* Defaults to `technic.get_RE_charge` which handles tool wear and charge values.
67+
* Defaults to `technic.get_charge` which handles tool wear and charge values.
6868
* `technic_set_charge = function(itemstack, charge) ...`:
6969
* Callback will be used to set itemstack charge.
70-
* Defaults to `technic.set_RE_charge` which handles tool wear and charge values.
71-
* `technic.get_RE_charge(itemstack)`
70+
* Defaults to `technic.set_charge` which handles tool wear and charge values.
71+
* `technic.get_charge(itemstack)`
7272
* Returns current charge level of tool.
7373
* For tool charger mods it is recommended to use `<tooldef>.technic_get_charge(stack)` instead.
74-
* `technic.set_RE_charge(itemstack, charge)`
74+
* `technic.set_charge(itemstack, charge)`
7575
* Sets tool charge level.
7676
* For tool charger mods it is recommended to use `<tooldef>.technic_set_charge(stack, charge)` instead.
77-
* `technic.use_RE_charge(itemstack, charge)`
77+
* `technic.use_charge(itemstack, charge)`
7878
* Attempt to use charge and return `true`/`false` indicating success.
7979
* Always succeeds without checking charge level if creative is enabled.
8080

technic/helpers.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ function technic.swap_node(pos, name)
6262
end
6363
end
6464

65-
function technic.set_RE_charge(stack, charge)
65+
function technic.set_charge(stack, charge)
6666
local wear_factor = stack:get_definition().technic_wear_factor
6767
if wear_factor then
6868
local wear = math.floor(charge * wear_factor + 0.5)
6969
stack:set_wear(wear > 0 and 65536 - wear or 0)
7070
end
7171
end
7272

73-
function technic.get_RE_charge(stack)
73+
function technic.get_charge(stack)
7474
local def = stack:get_definition()
7575
if def.technic_wear_factor then
7676
local wear = stack:get_wear()
@@ -79,12 +79,12 @@ function technic.get_RE_charge(stack)
7979
return 0, 0
8080
end
8181

82-
function technic.use_RE_charge(stack, amount)
82+
function technic.use_charge(stack, amount)
8383
if technic.creative_mode or amount <= 0 then
8484
-- Do not check charge in creative mode or when trying to use zero amount
8585
return true
8686
end
87-
local charge = technic.get_RE_charge(stack)
87+
local charge = technic.get_charge(stack)
8888
if charge < amount then
8989
-- Not enough energy available
9090
return false

technic/machines/compat/digtron.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ local function tap_batteries(battery_positions, target, test)
3636
end
3737

3838
for i, itemstack in pairs(invlist) do
39-
local charge = technic.get_RE_charge(itemstack)
39+
local charge = technic.get_charge(itemstack)
4040
local power_available = math.floor(charge / digtron.config.power_ratio)
4141
if power_available ~= 0 then
4242
local actual_burned = power_available -- we just take all we have from the battery, since they aren't stackable
4343
-- don't bother recording the items if we're just testing, nothing is actually being removed.
4444
if test ~= true then
4545
-- since we are taking everything, the wear and charge can both be set to 0
46-
technic.set_RE_charge(itemstack, 0)
46+
technic.set_charge(itemstack, 0)
4747
end
4848
current_burned = current_burned + actual_burned
4949
end
@@ -83,15 +83,15 @@ local function battery_holder_compat()
8383
-- Override battery holder
8484
local tube = minetest.registered_nodes["digtron:battery_holder"].tube
8585
tube.can_insert = function(pos, node, stack, direction)
86-
if technic.get_RE_charge(stack) > 0 then
86+
if technic.get_charge(stack) > 0 then
8787
local inv = minetest.get_meta(pos):get_inventory()
8888
return inv:room_for_item("batteries", stack)
8989
end
9090
return false
9191
end
9292
minetest.override_item("digtron:battery_holder",{
9393
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
94-
return (listname == "batteries" and technic.get_RE_charge(stack) > 0) and stack:get_count() or 0
94+
return (listname == "batteries" and technic.get_charge(stack) > 0) and stack:get_count() or 0
9595
end,
9696
tube = tube,
9797
})

technic/machines/compat/tools.lua

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ function technic.register_power_tool(itemname, def_or_max_charge)
8787
-- Add legacy meta handlers if mod did not attempt to read technic.plus value
8888
local modname = itemname:match(":?(.+):")
8989
if plus_aware[modname] then
90-
overrides.technic_get_charge = redef.technic_get_charge or technic.get_RE_charge
91-
overrides.technic_set_charge = redef.technic_set_charge or technic.set_RE_charge
90+
overrides.technic_get_charge = redef.technic_get_charge or technic.get_charge
91+
overrides.technic_set_charge = redef.technic_set_charge or technic.set_charge
9292
minetest.log("warning", "Mod "..modname.." seems to be aware of technic.plus but "..
9393
itemname.." is still using deprecated registration, skipping meta charge compatibility.")
9494
elseif not redef.technic_get_charge and not redef.technic_set_charge then
@@ -109,7 +109,11 @@ function technic.register_power_tool(itemname, def_or_max_charge)
109109
end
110110
end
111111

112-
-- Same as `technic.set_RE_charge` but without calling through `itemdef.technic_set_charge`.
112+
technic.set_RE_charge = assert(technic.set_charge)
113+
technic.get_RE_charge = assert(technic.get_charge)
114+
technic.use_RE_charge = assert(technic.use_charge)
115+
116+
-- Same as `technic.set_charge` but without calling through `itemdef.technic_set_charge`.
113117
function technic.set_RE_wear(stack, charge)
114118
minetest.log("warning", "Use of deprecated function technic.set_RE_wear with stack: "..stack:get_name())
115119
compat_set_RE_wear(stack, charge)

technic/register.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ function technic.register_power_tool(itemname, itemdef)
3434
itemdef.wear_represents = itemdef.wear_represents or "technic_RE_charge"
3535
itemdef.technic_max_charge = max_charge
3636
itemdef.technic_wear_factor = 65535 / max_charge
37-
itemdef.technic_get_charge = itemdef.technic_get_charge or technic.get_RE_charge
38-
itemdef.technic_set_charge = itemdef.technic_set_charge or technic.set_RE_charge
37+
itemdef.technic_get_charge = itemdef.technic_get_charge or technic.get_charge
38+
itemdef.technic_set_charge = itemdef.technic_set_charge or technic.set_charge
3939
itemdef.on_refill = itemdef.on_refill or function(stack)
4040
local def = stack:get_definition()
4141
def.technic_set_charge(stack, def.technic_max_charge)

technic/spec/tools_spec.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,11 @@ describe("Technic power tool", function()
287287
set_player_stack(stack)
288288

289289
-- Use item, flashlight charge is used every globalstep and there's no on_use definition
290-
spy.on(technic, "use_RE_charge")
290+
spy.on(technic, "use_charge")
291291
for i=1, 100 do
292292
mineunit:execute_globalstep(1)
293293
end
294-
assert.spy(technic.use_RE_charge).called(100)
294+
assert.spy(technic.use_charge).called(100)
295295

296296
-- Check that item charge was actually used and error is acceptable
297297
local charge_used = itemdef.technic_max_charge - technic.get_RE_charge(get_player_stack())

technic/tools/chainsaw.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ technic.register_power_tool("technic:chainsaw", {
177177
return
178178
end
179179

180-
local charge = technic.get_RE_charge(itemstack)
180+
local charge = technic.get_charge(itemstack)
181181
if charge < chainsaw_charge_per_node then
182182
return
183183
end
@@ -192,7 +192,7 @@ technic.register_power_tool("technic:chainsaw", {
192192
-- chainsaw will stop after digging a number of nodes
193193
charge = chainsaw_dig(pointed_thing.under, charge)
194194
if not technic.creative_mode then
195-
technic.set_RE_charge(itemstack, charge)
195+
technic.set_charge(itemstack, charge)
196196
end
197197
return itemstack
198198
end,

technic/tools/flashlight.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ local function check_for_flashlight(player)
3333
local inv = player:get_inventory()
3434
local hotbar = inv:get_list("main")
3535
for i = 1, 8 do
36-
if hotbar[i]:get_name() == "technic:flashlight" and technic.use_RE_charge(hotbar[i], 2) then
36+
if hotbar[i]:get_name() == "technic:flashlight" and technic.use_charge(hotbar[i], 2) then
3737
-- See https://github.com/minetest/minetest/issues/9377 for wield item animation
3838
inv:set_stack("main", i, hotbar[i])
3939
return true

technic/tools/mining_drill.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ local function mining_drill_mk2_handler(itemstack, user, pointed_thing)
284284
return
285285
end
286286
local charge_to_take = cost_to_use(2, mode)
287-
if technic.use_RE_charge(itemstack, charge_to_take) then
287+
if technic.use_charge(itemstack, charge_to_take) then
288288
local pos = minetest.get_pointed_thing_position(pointed_thing, false)
289289
drill_dig_it(pos, user, mode)
290290
end
@@ -302,7 +302,7 @@ local function mining_drill_mk3_handler(itemstack, user, pointed_thing)
302302
return
303303
end
304304
local charge_to_take = cost_to_use(3, mode)
305-
if technic.use_RE_charge(itemstack, charge_to_take) then
305+
if technic.use_charge(itemstack, charge_to_take) then
306306
local pos = minetest.get_pointed_thing_position(pointed_thing, false)
307307
drill_dig_it(pos, user, mode)
308308
end
@@ -319,7 +319,7 @@ technic.register_power_tool("technic:mining_drill", {
319319
return itemstack
320320
end
321321
local charge_to_take = cost_to_use(1, 1)
322-
if technic.use_RE_charge(itemstack, charge_to_take) then
322+
if technic.use_charge(itemstack, charge_to_take) then
323323
local pos = minetest.get_pointed_thing_position(pointed_thing, false)
324324
drill_dig_it(pos, user, 1)
325325
end

technic/tools/mining_lasers.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ for _, m in pairs(mining_lasers_list) do
101101
range = 0,
102102
max_charge = m[3],
103103
on_use = function(itemstack, user)
104-
local charge = technic.get_RE_charge(itemstack)
104+
local charge = technic.get_charge(itemstack)
105105
if charge > 0 then
106106
local range = m[2]
107107
if charge < m[4] then
@@ -111,7 +111,7 @@ for _, m in pairs(mining_lasers_list) do
111111
-- If charge is too low, give the laser a shorter range
112112
range = range * charge / m[4]
113113
end
114-
technic.use_RE_charge(itemstack, math.min(m[4], charge))
114+
technic.use_charge(itemstack, math.min(m[4], charge))
115115
laser_shoot(user, range, "technic_laser_beam_mk" .. m[1] .. ".png", "technic_laser_mk" .. m[1])
116116
return itemstack
117117
end

0 commit comments

Comments
 (0)