Compare commits

...

9 Commits
1.11 ... 1.11.4

Author SHA1 Message Date
8afb51dae8 Some cleaning 2022-09-04 19:12:57 +02:00
734b09b69f Minor cleaning 2022-08-29 11:29:09 +02:00
1560d59d4a Bump version 2022-08-28 16:36:30 +02:00
e4e175a775 Minor tweak 2022-08-28 16:36:08 +02:00
7a40f36611 Bump version 2022-08-28 15:36:44 +02:00
2467e8bb0b Fix sound play 2022-08-28 15:34:37 +02:00
9666834aed Minor tweak 2022-08-28 15:21:20 +02:00
7670356c8c Bump version (again) 2022-08-28 14:46:03 +02:00
646d16afd8 Hotfix HUD 2022-08-28 14:45:37 +02:00
7 changed files with 90 additions and 84 deletions

View File

@ -20,7 +20,7 @@ local function lf(path)
end
i3 = {
version = 1110,
version = 1113,
data = core.deserialize(storage:get_string"data") or {},
settings = {

View File

@ -2,7 +2,7 @@ local replacements = {fuel = {}}
local http = ...
IMPORT("maxn", "copy", "insert", "sort", "match", "sub")
IMPORT("true_str", "is_table", "valid_item", "table_merge", "table_replace", "rcp_eq")
IMPORT("true_str", "is_table", "valid_item", "table_merge", "table_replace", "table_eq")
IMPORT("fmt", "reg_items", "reg_aliases", "reg_nodes", "is_cube", "get_cube", "ItemStack")
IMPORT("is_group", "extract_groups", "item_has_groups", "groups_to_items", "get_group_stereotype")
@ -248,11 +248,7 @@ local old_clear_craft = core.clear_craft
core.clear_craft = function(def)
old_clear_craft(def)
if true_str(def) then
return -- TODO
elseif is_table(def) then
return -- TODO
end
-- TODO: hide in crafting guide
end
local function resolve_aliases(hash)
@ -274,7 +270,7 @@ local function resolve_aliases(hash)
local rcp_new = copy(i3.recipes_cache[newname][j])
rcp_new.output = oldname
if rcp_eq(rcp_old, rcp_new) then
if table_eq(rcp_old, rcp_new) then
similar = true
break
end

View File

@ -216,18 +216,22 @@ local function array_diff(t1, t2)
return diff
end
local function rcp_eq(rcp, rcp2)
if rcp.type ~= rcp2.type then return end
if rcp.width ~= rcp2.width then return end
if #rcp.items ~= #rcp2.items then return end
if rcp.output ~= rcp2.output then return end
local function table_eq(t1, t2)
local ty1, ty2 = type(t1), type(t2)
if ty1 ~= ty2 then return end
for i, item in pairs(rcp.items) do
if item ~= rcp2.items[i] then return end
if ty1 ~= "table" and ty2 ~= "table" then
return t1 == t2
end
for i, item in pairs(rcp2.items) do
if item ~= rcp.items[i] then return end
for k, v in pairs(t1) do
local v2 = t2[k]
if v2 == nil or not table_eq(v, v2) then return end
end
for k, v in pairs(t2) do
local v1 = t1[k]
if v1 == nil or not table_eq(v1, v) then return end
end
return true
@ -764,7 +768,7 @@ local _ = {
is_table = is_table,
table_merge = table_merge,
table_replace = table_replace,
rcp_eq = rcp_eq,
table_eq = table_eq,
array_diff = array_diff,
-- Math

View File

@ -10,6 +10,9 @@ local trash = create_inventory("i3_trash", {
inv:set_list(listname, {})
local name = player:get_player_name()
local data = i3.data[name]
data.armor_allow = nil
play_sound(name, "i3_trash", 1.0)
if not core.is_creative_enabled(name) then

View File

@ -131,7 +131,7 @@ local function get_inv_slots(data, fs)
local legacy_inventory = data.legacy_inventory
local hotbar_len = data.hotbar_len
local inv_x = legacy_inventory and 0.23 or 0.22
local inv_y = legacy_inventory and 6.5 or 6.9
local inv_y = legacy_inventory and 6.7 or 6.9
local spacing = legacy_inventory and 0.25 or 0.1
local size = 1
@ -144,7 +144,7 @@ local function get_inv_slots(data, fs)
fs(fmt("style_type[list;size=%f;spacing=%f]", size, spacing),
fmt("list[current_player;main;%f,%f;%u,1;]", inv_x, inv_y, hotbar_len))
fs(fmt("style_type[list;size=%f;spacing=%f]", size, spacing))
fs(fmt("style_type[list;size=%f;spacing=%f,%f]", size, spacing, legacy_inventory and 0.15 or spacing))
fs(fmt("list[current_player;main;%f,%f;%u,%u;%u]", inv_x, inv_y + (legacy_inventory and 1.25 or 1.15),
hotbar_len, data.inv_size / hotbar_len, hotbar_len))
@ -649,7 +649,7 @@ local function show_settings(fs, data)
checkbox(2.6, 9.95, "cb_inv_compress", "Compression", tostring(data.inv_compress))
checkbox(2.6, 10.4, "cb_reverse_sorting", "Reverse mode", tostring(data.reverse_sorting))
checkbox(2.6, 10.85, "cb_ignore_hotbar", "Ignore hotbar", tostring(data.ignore_hotbar))
checkbox(5.5, 9.95, "cb_auto_sorting", "Automation", tostring(data.auto_sorting))
checkbox(5.4, 9.95, "cb_auto_sorting", "Automation", tostring(data.auto_sorting))
local methods = {}
@ -658,13 +658,13 @@ local function show_settings(fs, data)
insert(methods, name)
end
label(5.5, 10.4, ES"Sorting method:")
fs(fmt("dropdown[%f,%f;2.3,0.5;dd_sorting_method;%s;%u;true]",
5.5, 10.6, concat(methods, ","), data.sort))
label(5.4, 10.4, ES"Sorting method:")
fs(fmt("dropdown[%f,%f;2.4,0.5;dd_sorting_method;%s;%u;true]",
5.4, 10.6, concat(methods, ","), data.sort))
local desc = i3.sorting_methods[data.sort].description
if desc then
tooltip(5.5, 10.6, 2.3, 0.5, ESC(desc))
tooltip(5.4, 10.6, 2.4, 0.5, ESC(desc))
end
fs(fmt("tooltip[cb_inv_compress;%s;#707070;#fff]",

View File

@ -105,36 +105,32 @@ core.register_globalstep(function(dt)
local data = i3.data[name]
if not data then return end
local function reset()
player:hud_change(data.hud.wielditem, "text", "")
data.timer = 0
end
if not data.wielditem_hud then
return reset()
player:hud_change(data.hud.wielditem, "text", "")
return
end
data.timer = (data.timer or 0) + dt
local wieldidx = player:get_wield_index()
local wielditem = player:get_wielded_item()
local wieldname = wielditem:get_name()
if wieldname == data.old_wielditem then
if wieldidx == data.old_wieldidx then
if data.timer >= i3.settings.wielditem_fade_after then
return reset()
player:hud_change(data.hud.wielditem, "text", "")
end
return
end
data.old_wielditem = wieldname
data.timer = 0
data.old_wieldidx = wieldidx
local wielditem = player:get_wielded_item()
local meta = wielditem:get_meta()
local meta_desc = meta:get_string"short_description"
meta_desc = meta_desc:gsub("\27", "")
meta_desc = core.strip_colors(meta_desc)
local desc = meta_desc ~= "" and meta_desc or wielditem:get_short_description()
player:hud_change(data.hud.wielditem, "text", desc:trim())
end
end)

View File

@ -11,32 +11,39 @@ mt3:get_meta():set_string("description", "Worn Pick")
mt3:get_meta():set_string("color", "yellow")
mt3:set_wear(10000)
minetest.register_craft({
minetest.register_craft {
output = mt:to_string(),
type = "shapeless",
recipe = {
"default:wood",
mt2:to_string(),
},
})
}
minetest.register_craft({
minetest.register_craft {
output = mt3:to_string(),
type = "shapeless",
recipe = {
"default:pick_mese",
"default:diamond",
},
})
}
minetest.clear_craft {
recipe = {
{"default:sand", "default:sand"},
{"default:sand", "default:sand"},
},
}
i3.register_craft {
url = "https://raw.githubusercontent.com/minetest-mods/i3/main/tests/test_online_recipe.json"
}
i3.register_craft({
i3.register_craft {
result = "default:ladder_wood 2",
items = {"default:copper_ingot 7, default:tin_ingot, default:steel_ingot 2"},
})
}
i3.register_craft {
result = "default:tree",
@ -56,7 +63,7 @@ i3.register_craft {
}
}
i3.register_craft({
i3.register_craft {
grid = {
"X",
"#",
@ -68,9 +75,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X",
"#X",
@ -82,9 +89,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X",
},
@ -93,10 +100,10 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X#",
},
@ -105,9 +112,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X#X",
},
@ -116,9 +123,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X#XX",
},
@ -127,9 +134,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X#XX",
"X#X",
@ -139,9 +146,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X#XX",
"X#X",
@ -152,9 +159,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X##XX",
},
@ -163,9 +170,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X##X#X",
},
@ -174,9 +181,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X##X#X",
"",
@ -187,9 +194,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -201,9 +208,9 @@ i3.register_craft({
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -215,9 +222,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -230,9 +237,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -245,10 +252,10 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -262,9 +269,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -278,9 +285,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -294,9 +301,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -310,9 +317,9 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}
i3.register_craft({
i3.register_craft {
grid = {
"X #",
" ## ",
@ -328,4 +335,4 @@ i3.register_craft({
['X'] = "default:glass",
},
result = "default:mese 3",
})
}