From 0e42e5890146a77f6b357f3bb9b5264fc4258733 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Sun, 1 May 2022 01:36:47 +0200 Subject: [PATCH] Get rid of the 2d preview --- mods/ITEMS/mcl_armor/API.md | 34 +++++++----------- mods/ITEMS/mcl_armor/api.lua | 13 ------- mods/ITEMS/mcl_armor/player.lua | 2 +- mods/ITEMS/mcl_enchanting/engine.lua | 3 -- mods/ITEMS/mcl_farming/pumpkin.lua | 1 - mods/ITEMS/mcl_heads/init.lua | 1 - mods/PLAYER/mcl_player/init.lua | 22 ++---------- mods/PLAYER/mcl_skins/.gitignore | 2 ++ mods/PLAYER/mcl_skins/init.lua | 32 +++++------------ .../mcl_skins/textures/mcl_skins_player_1.png | Bin 2625 -> 0 bytes .../textures/mcl_skins_player_dummy.png | Bin 982 -> 0 bytes 11 files changed, 26 insertions(+), 84 deletions(-) create mode 100644 mods/PLAYER/mcl_skins/.gitignore delete mode 100644 mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png delete mode 100644 mods/PLAYER/mcl_skins/textures/mcl_skins_player_dummy.png diff --git a/mods/ITEMS/mcl_armor/API.md b/mods/ITEMS/mcl_armor/API.md index ede33ebb9..6f469718b 100644 --- a/mods/ITEMS/mcl_armor/API.md +++ b/mods/ITEMS/mcl_armor/API.md @@ -48,7 +48,7 @@ mcl_armor.register_set({ enchantability = 15, --this define how much each piece of armor protect the player - --these points will be shown in the HUD (chestplate bar above the health bar) + --these points will be shown in the HUD (chestplate bar above the health bar) points = { head = 1, torso = 3, @@ -87,23 +87,15 @@ mcl_armor.register_set({ end, }, - --WARNING: 2d preview is deprecated and will be removed soon - --specify textures that will be shown in player inventory then you disabled the 3d player inventory preview - --its similar to how works the textures field - previews = { - head = "dummy_texture.png", --default: "_helmet__preview.png" - torso = "dummy_texture.png", --default: "_chestplate__preview.png" - legs = "dummy_texture.png", --default: "_leggings__preview.png" - feet = "dummy_texture.png", --default: "_boots__preview.png" + --specify textures that will be shown in player inventory + --its similar to how works the textures field except you can't use functions + inventory = { + head = "inv_dummy_texture.png", --default: "_inv_helmet_.png" + torso = "inv_dummy_texture.png", --default: "_inv_chestplate_.png" + legs = "inv_dummy_texture.png", --default: "_inv_leggings_.png" + feet = "inv_dummy_texture.png", --default: "_inv_boots_.png" }, - --inventory textures aren't definable using a table similar to textures or previews - --you are forced to use the default texture names which are: - --head: "_inv_helmet_.png - --torso: "_inv_chestplate_.png - --legs: "_inv_leggings_.png - --feet: "_inv_boots_.png - --this callback table allow you to define functions that will be called each time an entity equip an armor piece or the mcl_armor.on_equip() function is called --the functions accept two arguments: obj and itemstack on_equip_callbacks = { @@ -134,12 +126,12 @@ mcl_armor.register_set({ craft_material = "mcl_mobitems:leather", --this is used to generate cooking crafts for each piece of armor - --if set to nil no craft will be added + --if set to nil no craft will be added cook_material = "mcl_core:gold_nugget", --cooking any piece of this armor will output a gold nugged --this is used for allowing each piece of the armor to be repaired by using an anvil with repair_material as aditionnal material --it basicaly set the _repair_material item field of each piece of the armor - --if set to nil no repair material will be added + --if set to nil no repair material will be added repair_material = "mcl_core:iron_ingot", }) ``` @@ -179,7 +171,7 @@ minetest.register_tool("dummy_mod:random_armor", { }, --these fields should be initialised like that in most cases - --mcl_armor.equip_on_use is a function that try to equip the piece of armor you have in hand inside the right armor slot if the slot is empty + --mcl_armor.equip_on_use is a function that try to equip the piece of armor you have in hand inside the right armor slot if the slot is empty on_place = mcl_armor.equip_on_use, on_secondary_use = mcl_armor.equip_on_use, @@ -263,7 +255,7 @@ mcl_armor.register_protection_enchantment({ max_level = 4, --which enchants this enchant will not be compatible with - --each of these values is a enchant id + --each of these values is a enchant id incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true}, --how much will the enchant consume from the enchantability group of the armor item @@ -284,7 +276,7 @@ mcl_armor.register_protection_enchantment({ factor = 1, --restrict damage to one type - --allow the enchant to only protect of one type of damage + --allow the enchant to only protect of one type of damage damage_type = "magic", --restrict damage to one category diff --git a/mods/ITEMS/mcl_armor/api.lua b/mods/ITEMS/mcl_armor/api.lua index 7cbfb5c2f..ac27a7120 100644 --- a/mods/ITEMS/mcl_armor/api.lua +++ b/mods/ITEMS/mcl_armor/api.lua @@ -220,17 +220,6 @@ function mcl_armor.update(obj) end end - local preview = def._mcl_armor_preview - - if obj:is_player() and preview then - if type(preview) == "function" then - preview = preview(obj, itemstack) - end - if preview then - info.preview = "(player.png^[opacity:0^" .. def._mcl_armor_preview .. ")" .. (info.preview and "^" .. info.preview or "" ) - end - end - info.points = info.points + minetest.get_item_group(itemname, "mcl_armor_points") local mob_range_mob = def._mcl_armor_mob_range_mob @@ -253,8 +242,6 @@ function mcl_armor.update(obj) info.texture = info.texture or "blank.png" if obj:is_player() then - info.preview = info.preview or "blank.png" - mcl_armor.update_player(obj, info) else local luaentity = obj:get_luaentity() diff --git a/mods/ITEMS/mcl_armor/player.lua b/mods/ITEMS/mcl_armor/player.lua index 48fdb381f..99e23efdd 100644 --- a/mods/ITEMS/mcl_armor/player.lua +++ b/mods/ITEMS/mcl_armor/player.lua @@ -63,7 +63,7 @@ mcl_player.player_register_model("mcl_armor_character_female.b3d", { }) function mcl_armor.update_player(player, info) - mcl_player.player_set_armor(player, info.texture, info.preview) + mcl_player.player_set_armor(player, info.texture) local meta = player:get_meta() meta:set_int("mcl_armor:armor_points", info.points) diff --git a/mods/ITEMS/mcl_enchanting/engine.lua b/mods/ITEMS/mcl_enchanting/engine.lua index f505c055e..7be1d7244 100644 --- a/mods/ITEMS/mcl_enchanting/engine.lua +++ b/mods/ITEMS/mcl_enchanting/engine.lua @@ -280,9 +280,6 @@ function mcl_enchanting.initialize() if new_def._mcl_armor_texture and not type(new_def._mcl_armor_texture) == "function" then new_def._mcl_armor_texture = new_def._mcl_armor_texture .. mcl_enchanting.overlay end - if new_def._mcl_armor_preview and not type(new_def._mcl_armor_preview) == "function" then - new_def._mcl_armor_preview = new_def._mcl_armor_preview .. mcl_enchanting.overlay - end new_def._mcl_enchanting_enchanted_tool = new_name new_def.after_use = get_after_use_callback(itemdef) diff --git a/mods/ITEMS/mcl_farming/pumpkin.lua b/mods/ITEMS/mcl_farming/pumpkin.lua index a38f11862..86160839b 100644 --- a/mods/ITEMS/mcl_farming/pumpkin.lua +++ b/mods/ITEMS/mcl_farming/pumpkin.lua @@ -123,7 +123,6 @@ pumpkin_face_base_def._mcl_armor_mob_range_factor = 0 pumpkin_face_base_def._mcl_armor_mob_range_mob = "mobs_mc:enderman" pumpkin_face_base_def._mcl_armor_element = "head" pumpkin_face_base_def._mcl_armor_texture = "mcl_farming_pumpkin_face.png" -pumpkin_face_base_def._mcl_armor_preview = "mcl_farming_pumpkin_face_preview.png" if minetest.get_modpath("mcl_armor") then local pumpkin_hud = {} diff --git a/mods/ITEMS/mcl_heads/init.lua b/mods/ITEMS/mcl_heads/init.lua index 78356de71..c14079393 100644 --- a/mods/ITEMS/mcl_heads/init.lua +++ b/mods/ITEMS/mcl_heads/init.lua @@ -113,7 +113,6 @@ local function addhead(name, texture, desc, longdesc, rangemob, rangefactor) _mcl_armor_mob_range_factor = rangefactor, _mcl_armor_element = "head", _mcl_armor_texture = "mcl_heads_" .. name .. ".png", - _mcl_armor_preview = "mcl_heads_" .. name .. "_preview.png", _mcl_blast_resistance = 1, _mcl_hardness = 1, }) diff --git a/mods/PLAYER/mcl_player/init.lua b/mods/PLAYER/mcl_player/init.lua index 0dfe53976..74cf18b22 100644 --- a/mods/PLAYER/mcl_player/init.lua +++ b/mods/PLAYER/mcl_player/init.lua @@ -95,37 +95,19 @@ local function set_texture(player, index, texture) player:set_properties({textures = textures}) end -local function set_preview(player, field, preview) - player:get_meta():set_string("mcl_player:" .. field .. "_preview", preview) -end -function mcl_player.player_set_skin(player, texture, preview) +function mcl_player.player_set_skin(player, texture) set_texture(player, 1, texture) - set_preview(player, "skin", preview) end -function mcl_player.player_set_armor(player, texture, preview) +function mcl_player.player_set_armor(player, texture) set_texture(player, 2, texture) - set_preview(player, "armor", preview) end function mcl_player.player_set_wielditem(player, texture) set_texture(player, 3, texture) end -function mcl_player.player_get_preview(player) - local preview = player:get_meta():get_string("mcl_player:skin_preview") - if preview == "" then - preview = "player.png" - end - local armor_preview = player:get_meta():set_string("mcl_player:armor_preview") - if armor_preview ~= "" then - preview = preview .. "^" .. armor_preview - end - return preview - -end - function mcl_player.get_player_formspec_model(player, x, y, w, h, fsname) local name = player:get_player_name() local model = player_model[name] diff --git a/mods/PLAYER/mcl_skins/.gitignore b/mods/PLAYER/mcl_skins/.gitignore new file mode 100644 index 000000000..9cd252468 --- /dev/null +++ b/mods/PLAYER/mcl_skins/.gitignore @@ -0,0 +1,2 @@ +!mcl_skins_character_1.png +textures/mcl_skins_character_* \ No newline at end of file diff --git a/mods/PLAYER/mcl_skins/init.lua b/mods/PLAYER/mcl_skins/init.lua index 6d5461a98..60981a8c1 100644 --- a/mods/PLAYER/mcl_skins/init.lua +++ b/mods/PLAYER/mcl_skins/init.lua @@ -3,7 +3,7 @@ local modname = minetest.get_current_modname() mcl_skins = { - skins = {}, list = {}, previews = {}, meta = {}, has_preview = {}, + skins = {}, list = {}, meta = {}, modpath = minetest.get_modpath(modname), skin_count = 0, -- counter of _custom_ skins (all skins except character.png) } @@ -18,10 +18,8 @@ while true do if id == 0 then skin = "character" - mcl_skins.has_preview[id] = true else skin = "mcl_skins_character_" .. id - local preview = "mcl_skins_player_" .. id -- Does skin file exist? f = io.open(mcl_skins.modpath .. "/textures/" .. skin .. ".png") @@ -31,16 +29,6 @@ while true do break end f:close() - - -- Does skin preview file exist? - local file_preview = io.open(mcl_skins.modpath .. "/textures/" .. preview .. ".png") - if file_preview == nil then - minetest.log("warning", "[mcl_skins] Player skin #"..id.." does not have preview image (player_"..id..".png)") - mcl_skins.has_preview[id] = false - else - mcl_skins.has_preview[id] = true - file_preview:close() - end end mcl_skins.list[id] = skin @@ -89,12 +77,11 @@ function mcl_skins.set_player_skin(player, skin_id) return false end local playername = player:get_player_name() - local skin, preview + local skin if skin_id == nil or type(skin_id) ~= "number" or skin_id < 0 or skin_id > mcl_skins.skin_count then return false elseif skin_id == 0 then skin = "character" - preview = "player" mcl_player.player_set_model(player, "mcl_armor_character.b3d") else skin = "mcl_skins_character_" .. tostring(skin_id) @@ -104,16 +91,9 @@ function mcl_skins.set_player_skin(player, skin_id) else mcl_player.player_set_model(player, "mcl_armor_character.b3d") end - if mcl_skins.has_preview[skin_id] then - preview = "mcl_skins_player_" .. tostring(skin_id) - else - -- Fallback preview image if preview image is missing - preview = "mcl_skins_player_dummy" - end end --local skin_file = skin .. ".png" mcl_skins.skins[playername] = skin - mcl_skins.previews[playername] = preview player:get_meta():set_string("mcl_skins:skin_id", tostring(skin_id)) mcl_skins.update_player_skin(player) if has_mcl_inventory then @@ -131,7 +111,7 @@ function mcl_skins.update_player_skin(player) return end local playername = player:get_player_name() - mcl_player.player_set_skin(player, mcl_skins.skins[playername] .. ".png", mcl_skins.previews[playername] .. ".png") + mcl_player.player_set_skin(player, mcl_skins.skins[playername] .. ".png") end -- load player skin on join @@ -259,7 +239,11 @@ function mcl_skins.show_formspec(playername) formspec = formspec .. ";" .. selected .. ";false]" - formspec = formspec .. "image[0,0;1.35,2.7;" .. mcl_skins.previews[playername] .. ".png]" + local player = minetest.get_player_by_name(playername) + if player then + --maybe the function could accept both player object and player name? + formspec = formspec .. mcl_player.get_player_formspec_model(player, 0, 0, 1.35, 2.7, "mcl_skins:skin_select") + end if meta then if meta.name and meta.name ~= "" then diff --git a/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png b/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png deleted file mode 100644 index 3d7af2a980c2412be1f72e39fd6d7ffeda8f7fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2625 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 Eg6UDq0RR91