1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-20 06:10:23 +02:00

Separate-out the wardrobe into its own mod

Standalone -- can be used without the rest of home decor
This commit is contained in:
TenPlus1
2019-04-20 10:01:42 -04:00
committed by Vanessa Dannenberg
parent 554ec8028d
commit 95590f23c5
34 changed files with 327 additions and 156 deletions

View File

@ -2194,15 +2194,6 @@ minetest.register_craft( {
},
})
minetest.register_craft( {
output = "homedecor:wardrobe",
recipe = {
{ "homedecor:drawer_small", "homedecor:kitchen_cabinet" },
{ "homedecor:drawer_small", "default:wood" },
{ "homedecor:drawer_small", "default:wood" }
},
})
minetest.register_craft( {
output = "homedecor:pool_table",
recipe = {

View File

@ -115,7 +115,6 @@ dofile(modpath.."/cobweb.lua")
dofile(modpath.."/books.lua")
dofile(modpath.."/exterior.lua")
dofile(modpath.."/trash_cans.lua")
dofile(modpath.."/wardrobe.lua")
dofile(modpath.."/crafts.lua")

View File

@ -1,168 +0,0 @@
# Blender v2.73 (sub 0) OBJ File: 'bedroom-wardrobe.blend'
# www.blender.org
o Cylinder
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.437500
v 0.500000 -0.500000 -0.437500
v 0.500000 -0.500000 0.500000
v -0.500000 1.500000 0.500000
v -0.500000 1.500000 -0.437500
v 0.500000 1.500000 -0.437500
v 0.500000 1.500000 0.500000
v -0.437500 0.250000 -0.437500
v -0.437500 0.250000 -0.500000
v 0.437500 0.250000 -0.500000
v 0.437500 0.250000 -0.437500
v -0.437500 0.500000 -0.437500
v -0.437500 0.500000 -0.500000
v 0.437500 0.500000 -0.500000
v 0.437500 0.500000 -0.437500
v -0.437500 -0.062500 -0.437500
v -0.437500 -0.062500 -0.500000
v 0.437500 -0.062500 -0.500000
v 0.437500 -0.062500 -0.437500
v -0.437500 0.187500 -0.437500
v -0.437500 0.187500 -0.500000
v 0.437500 0.187500 -0.500000
v 0.437500 0.187500 -0.437500
v -0.437500 -0.375000 -0.437500
v -0.437500 -0.375000 -0.500000
v 0.437500 -0.375000 -0.500000
v 0.437500 -0.375000 -0.437500
v -0.437500 -0.125000 -0.437500
v -0.437500 -0.125000 -0.500000
v 0.437500 -0.125000 -0.500000
v 0.437500 -0.125000 -0.437500
v 0.062500 0.562500 -0.437500
v 0.062500 0.562500 -0.500000
v 0.437500 0.562500 -0.500000
v 0.437500 0.562500 -0.437500
v 0.062500 1.437500 -0.437500
v 0.062500 1.437500 -0.500000
v 0.437500 1.437500 -0.500000
v 0.437500 1.437500 -0.437500
v -0.437500 0.562500 -0.437500
v -0.437500 0.562500 -0.500000
v -0.062500 0.562500 -0.500000
v -0.062500 0.562500 -0.437500
v -0.437500 1.437500 -0.437500
v -0.437500 1.437500 -0.500000
v -0.062500 1.437500 -0.500000
v -0.062500 1.437500 -0.437500
v -0.500000 1.437500 -0.437500
v 0.500000 1.437500 -0.437500
v -0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 -0.437500
v -0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.437500
v 0.500000 0.500000 -0.437500
v 0.500000 0.500000 0.500000
vt 1.000000 0.000000
vt 1.000000 0.937500
vt 0.000000 0.937500
vt 0.000000 0.000000
vt 0.000000 1.000000
vt 0.062500 0.000000
vt 0.062500 1.000000
vt 1.000000 1.000000
vt 0.875000 1.000000
vt 0.875000 0.000000
vt 0.562500 0.937500
vt 0.562500 0.062500
vt 0.625000 0.062500
vt 0.625000 0.937500
vt 0.250000 0.937500
vt 0.250000 0.062500
vt 0.312500 0.062500
vt 0.312500 0.937500
vt 0.937500 0.437500
vt 0.937500 0.562500
vt 0.062500 0.562500
vt 0.062500 0.437500
vt 0.875000 0.937500
vt 0.875000 0.062500
vt -0.000000 0.062500
vt 0.062500 0.062500
vt 1.000000 0.062500
vt 0.062500 0.937500
vt 0.937500 0.062500
vt 0.937500 0.937500
vt 0.937500 1.000000
vt 0.937500 0.750000
vt 1.000000 0.750000
vt 0.062500 0.750000
vt -0.000000 0.750000
vt 0.062500 0.125000
vt 0.937500 0.125000
vt 0.937500 0.500000
vt 1.000000 0.500000
vt 0.062500 0.500000
vt 0.000000 0.500000
vt 0.937500 0.000000
vt 0.937500 0.250000
vt 1.000000 0.250000
vt 0.062500 0.250000
vt -0.000000 0.250000
vt 0.062500 0.187500
vt 0.937500 0.187500
vt 0.500000 0.937500
vt 0.437500 0.937500
vt 0.437500 0.062500
vt 0.500000 0.062500
vt 0.437500 0.000000
vt 0.437500 1.000000
vt 0.562500 0.000000
vt 0.562500 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
g Cylinder_Cylinder_wood
s off
f 53/1/1 54/2/1 2/3/1 1/4/1
f 6/5/2 7/4/2 50/6/2 49/7/2
f 55/3/3 56/4/3 4/1/3 3/2/3
f 56/5/4 53/4/4 1/1/4 4/8/4
f 1/1/5 2/2/5 3/3/5 4/4/5
f 8/1/6 7/2/6 6/3/6 5/4/6
f 3/1/2 2/8/2 51/9/2 52/10/2
f 5/1/1 6/2/1 54/3/1 53/4/1
f 7/3/3 8/4/3 56/1/3 55/2/3
f 17/11/2 20/12/2 32/13/2 29/14/2
f 9/15/2 12/16/2 24/17/2 21/18/2
f 8/5/4 5/4/4 53/1/4 56/8/4
f 33/19/2 44/20/2 48/21/2 37/22/2
f 51/9/2 54/5/2 13/3/2 25/23/2
f 52/10/2 28/24/2 16/25/2 55/4/2
f 40/26/2 50/6/2 55/1/2 16/27/2
f 45/28/2 13/2/2 54/8/2 49/7/2
f 36/29/2 16/27/2 13/2/2 41/30/2
g Cylinder_Cylinder_drawers
f 13/8/1 14/31/1 10/32/1 9/33/1
f 14/31/2 15/7/2 11/34/2 10/32/2
f 15/7/3 16/5/3 12/35/3 11/34/3
f 9/36/5 10/26/5 11/29/5 12/37/5
f 16/29/6 15/37/6 14/36/6 13/26/6
f 21/33/1 22/32/1 18/38/1 17/39/1
f 22/32/2 23/34/2 19/40/2 18/38/2
f 23/34/3 24/35/3 20/41/3 19/40/3
f 17/26/5 18/6/5 19/42/5 20/29/5
f 24/42/6 23/29/6 22/26/6 21/6/6
f 29/39/1 30/38/1 26/43/1 25/44/1
f 30/38/2 31/40/2 27/45/2 26/43/2
f 31/40/3 32/41/3 28/46/3 27/45/3
f 25/47/5 26/36/5 27/37/5 28/48/5
f 32/37/6 31/48/6 30/47/6 29/36/6
g Cylinder_Cylinder_doors
f 37/49/1 38/50/1 34/51/1 33/52/1
f 38/50/2 39/28/2 35/26/2 34/51/2
f 39/28/3 40/3/3 36/25/3 35/26/3
f 33/53/5 34/51/5 35/26/5 36/6/5
f 40/7/6 39/28/6 38/50/6 37/54/6
f 45/2/1 46/30/1 42/29/1 41/27/1
f 46/30/2 47/11/2 43/12/2 42/29/2
f 47/11/3 48/49/3 44/52/3 43/12/3
f 41/42/5 42/29/5 43/12/5 44/55/5
f 48/56/6 47/11/6 46/30/6 45/31/6

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

View File

@ -1,146 +0,0 @@
local S = homedecor_i18n.gettext
local wd_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }
}
-- cache set_textures function (fallback to old version)
-- default.player_set_textures is deprecated and will be removed in future
local set_player_textures =
minetest.get_modpath("player_api") and player_api.set_textures
or default.player_set_textures
local armor_mod_path = minetest.get_modpath("3d_armor")
local skinslist = {"male1", "male2", "male3", "male4", "male5"}
local default_skin = "character.png"
local skinsdb_mod_path = minetest.get_modpath("skinsdb")
if skinsdb_mod_path then
for _, shrt in ipairs(skinslist) do
for _, prefix in ipairs({"", "fe"}) do
local skin_name = prefix..shrt
local skin_obj = skins.new("homedecor_clothes_"..skin_name..".png") -- Texture PNG file as key to be compatible in set_player_skin
skin_obj:set_preview("homedecor_clothes_"..skin_name.."_preview.png")
skin_obj:set_texture("homedecor_clothes_"..skin_name..".png")
skin_obj:set_meta("name", "Wardrobe "..skin_name)
skin_obj:set_meta("author", 'Calinou and Jordach')
skin_obj:set_meta("license", 'CC-by-SA-4.0')
local file = io.open(homedecor.modpath.."/textures/homedecor_clothes_"..skin_name..".png", "r")
skin_obj:set_meta("format", skins.get_skin_format(file))
file:close()
skin_obj:set_meta("in_inventory_list", false)
end
end
end
function homedecor.get_player_skin(player)
local skin = player:get_attribute("homedecor:player_skin")
if not skin or skin == "" then
return default_skin, true
end
return skin, false
end
function homedecor.set_player_skin(player, skin, save)
if skinsdb_mod_path then
skins.set_player_skin(player, skin or skins.default)
elseif armor_mod_path then -- if 3D_armor's installed, let it set the skin
armor.textures[player:get_player_name()].skin = skin or default_skin
armor:update_player_visuals(player)
else
set_player_textures(player, { skin or default_skin})
end
if save and not skinsdb_mod_path then
if skin == default_skin then
skin = "default"
player:set_attribute("homedecor:player_skin", "")
else
player:set_attribute("homedecor:player_skin", skin)
end
if save == "player" then -- if player action
minetest.log("verbose",
S("player @1 sets skin to @2", player:get_player_name(), skin) ..
(armor_mod_path and ' [3d_armor]' or '')
)
end
end
end
function homedecor.unset_player_skin(player)
homedecor.set_player_skin(player, nil, true)
end
homedecor.register("wardrobe", {
mesh = "homedecor_bedroom_wardrobe.obj",
tiles = {
homedecor.plain_wood,
"homedecor_wardrobe_drawers.png",
"homedecor_wardrobe_doors.png"
},
inventory_image = "homedecor_wardrobe_inv.png",
description = S("Wardrobe"),
groups = {snappy=3},
selection_box = wd_cbox,
collision_box = wd_cbox,
sounds = default.node_sound_wood_defaults(),
expand = { top="placeholder" },
on_rotate = screwdriver.rotate_simple,
infotext = S("Wardrobe"),
inventory = {
size = 10
},
on_construct = function(pos)
local meta = minetest.get_meta(pos)
-- textures made by the Minetest community (mostly Calinou and Jordach)
local clothes_strings = ""
for i = 1,5 do
clothes_strings = clothes_strings..
"image_button_exit["..(i-1)..".5,0;1.1,2;homedecor_clothes_"..skinslist[i].."_preview.png;"..skinslist[i]..";]"..
"image_button_exit["..(i-1)..".5,2;1.1,2;homedecor_clothes_fe"..skinslist[i].."_preview.png;fe"..skinslist[i]..";]"
end
meta:set_string("formspec", "size[5.5,8.5]"..default.gui_bg..default.gui_bg_img..default.gui_slots..
"vertlabel[0,0.5;"..minetest.formspec_escape(S("Clothes")).."]"..
"button_exit[0,3.29;0.6,0.6;default;x]"..
clothes_strings..
"vertlabel[0,5.2;"..minetest.formspec_escape(S("Storage")).."]"..
"list[current_name;main;0.5,4.5;5,2;]"..
"list[current_player;main;0.5,6.8;5,2;]" ..
"listring[]")
end,
on_receive_fields = function(pos, formname, fields, sender)
if fields.default then
homedecor.set_player_skin(sender, nil, "player")
return
end
for i = 1,5 do
if fields[skinslist[i]] then
homedecor.set_player_skin(sender, "homedecor_clothes_"..skinslist[i]..".png", "player")
break
elseif fields["fe"..skinslist[i]] then
homedecor.set_player_skin(sender, "homedecor_clothes_fe"..skinslist[i]..".png", "player")
break
end
end
end
})
minetest.register_alias("homedecor:wardrobe_bottom", "homedecor:wardrobe")
minetest.register_alias("homedecor:wardrobe_top", "air")
if not skinsdb_mod_path then -- If not managed by skinsdb
minetest.register_on_joinplayer(function(player)
local skin = player:get_attribute("homedecor:player_skin")
if skin and skin ~= "" then
-- setting player skin on connect has no effect, so delay skin change
minetest.after(1, function(player, skin)
homedecor.set_player_skin(player, skin)
end, player, skin)
end
end)
end