Update wardrobe mod to v1.2...
https://github.com/AntumMT/mod-wardrobe/releases/tag/v1.2
@ -93,7 +93,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||||||
* [hbsprint][] ([LGPL][lic.lgpl2.1]) -- version: [f566d0f Git][ver.hbsprint] *2021-02-18* ([patched][patch.hbsprint])
|
* [hbsprint][] ([LGPL][lic.lgpl2.1]) -- version: [f566d0f Git][ver.hbsprint] *2021-02-18* ([patched][patch.hbsprint])
|
||||||
* player/visuals/
|
* player/visuals/
|
||||||
* [invisibility][] ([MIT][lic.invisibility]) -- version: [65c0823 Git][ver.invisibility] *2021-01-21* ([patched][patch.invisibility])
|
* [invisibility][] ([MIT][lic.invisibility]) -- version: [65c0823 Git][ver.invisibility] *2021-01-21* ([patched][patch.invisibility])
|
||||||
* [wardrobe][] ([WTFPL][lic.wtfpl]) -- version: [1.1-2-c48b011 Git][ver.wardrobe] *2015-05-21*
|
* [wardrobe][] ([MIT][lic.wardrobe]) -- version: [1.2][ver.wardrobe] *2021-04-20*
|
||||||
* protection/
|
* protection/
|
||||||
* [pvp_areas][] ([LGPL][lic.lgpl2.1]) -- version: [6e4d66d Git][ver.pvp_areas] *2018-07-26*
|
* [pvp_areas][] ([LGPL][lic.lgpl2.1]) -- version: [6e4d66d Git][ver.pvp_areas] *2018-07-26*
|
||||||
* [simple_protection][] ([CC0][lic.cc0]) -- version: [3630fe9 Git][ver.simple_protection] *2021-04-07* ([patched][patch.simple_protection])
|
* [simple_protection][] ([CC0][lic.cc0]) -- version: [3630fe9 Git][ver.simple_protection] *2021-04-07* ([patched][patch.simple_protection])
|
||||||
@ -333,7 +333,8 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||||||
[vines]: https://forum.minetest.net/viewtopic.php?f=11&t=2344
|
[vines]: https://forum.minetest.net/viewtopic.php?f=11&t=2344
|
||||||
[waffles]: https://forum.minetest.net/viewtopic.php?t=16669
|
[waffles]: https://forum.minetest.net/viewtopic.php?t=16669
|
||||||
[walking_light]: https://github.com/petermaloney/walking_light
|
[walking_light]: https://github.com/petermaloney/walking_light
|
||||||
[wardrobe]: https://forum.minetest.net/viewtopic.php?t=9680
|
[wardrobe]: https://github.com/AntumMT/mod-wardrobe
|
||||||
|
[wardrobe.old]: https://forum.minetest.net/viewtopic.php?t=9680
|
||||||
[weather]: https://forum.minetest.net/viewtopic.php?t=5245
|
[weather]: https://forum.minetest.net/viewtopic.php?t=5245
|
||||||
[whitelist]: https://forum.minetest.net/viewtopic.php?t=8434
|
[whitelist]: https://forum.minetest.net/viewtopic.php?t=8434
|
||||||
[windmill]: https://forum.minetest.net/viewtopic.php?id=7440
|
[windmill]: https://forum.minetest.net/viewtopic.php?id=7440
|
||||||
@ -397,6 +398,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||||||
[lic.trash_can]: mods/furniture/trash_can/LICENSE.txt
|
[lic.trash_can]: mods/furniture/trash_can/LICENSE.txt
|
||||||
[lic.waffles]: mods/furniture/waffles/LICENSE.txt
|
[lic.waffles]: mods/furniture/waffles/LICENSE.txt
|
||||||
[lic.walking_light]: mods/lighting/walking_light/README.md
|
[lic.walking_light]: mods/lighting/walking_light/README.md
|
||||||
|
[lic.wardrobe]: mods/player/visuals/wardrobe/LICENSE.txt
|
||||||
[lic.windmill]: mods/buildings/windmill/README.md
|
[lic.windmill]: mods/buildings/windmill/README.md
|
||||||
|
|
||||||
[lic.cc0]: doc/licenses/CC0.txt
|
[lic.cc0]: doc/licenses/CC0.txt
|
||||||
@ -536,7 +538,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||||||
[ver.unifieddyes]: https://gitlab.com/VanessaE/unifieddyes/tags/2021-03-26-1
|
[ver.unifieddyes]: https://gitlab.com/VanessaE/unifieddyes/tags/2021-03-26-1
|
||||||
[ver.waffles]: https://github.com/GreenXenith/waffles/tree/15bcdce
|
[ver.waffles]: https://github.com/GreenXenith/waffles/tree/15bcdce
|
||||||
[ver.walking_light]: https://github.com/petermaloney/walking_light/tree/766ef0f
|
[ver.walking_light]: https://github.com/petermaloney/walking_light/tree/766ef0f
|
||||||
[ver.wardrobe]: https://github.com/prestidigitator/minetest-mod-wardrobe/tree/c48b011
|
[ver.wardrobe]: https://github.com/AntumMT/mod-wardrobe/releases/tag/v1.2
|
||||||
[ver.whitelist]: https://github.com/AntumMT/mod-whitelist/tree/b813b19
|
[ver.whitelist]: https://github.com/AntumMT/mod-whitelist/tree/b813b19
|
||||||
[ver.windmill]: https://github.com/Sokomine/windmill/tree/47b029d
|
[ver.windmill]: https://github.com/Sokomine/windmill/tree/47b029d
|
||||||
[ver.workbench]: https://github.com/minetest-mods/workbench/tree/bd14f59
|
[ver.workbench]: https://github.com/minetest-mods/workbench/tree/bd14f59
|
||||||
|
@ -2156,6 +2156,14 @@ mobs_animal:sheep_white = 0
|
|||||||
#playeranim.animation_speed_sneak = 0.8
|
#playeranim.animation_speed_sneak = 0.8
|
||||||
|
|
||||||
|
|
||||||
|
# *** wardrobe ***
|
||||||
|
|
||||||
|
## Number of skins shown per page.
|
||||||
|
# type: int
|
||||||
|
# default: 8
|
||||||
|
#wardrobe.skins_per_page = 8
|
||||||
|
|
||||||
|
|
||||||
# *** wieldview ***
|
# *** wieldview ***
|
||||||
|
|
||||||
# ???
|
# ???
|
||||||
|
74
mods/antum/skins/init.lua
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
|
||||||
|
local modname = core.get_current_modname()
|
||||||
|
local modpath = core.get_modpath(modname)
|
||||||
|
local texture_dir = modpath .. "/textures"
|
||||||
|
|
||||||
|
local function logit(lvl, msg)
|
||||||
|
core.log(lvl, "[" .. modname .. "] " .. msg)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function texture_exists(fname)
|
||||||
|
local texture = texture_dir .. "/" .. fname
|
||||||
|
local f = io.open(texture, "r")
|
||||||
|
if f ~= nil then
|
||||||
|
io.close(f)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local skins = {
|
||||||
|
{"Ashley_by_loupicate.png", "Ashley",},
|
||||||
|
{"BlueZ_Sam_II_by_philipbenr.png", "BlueZ Sam II ",},
|
||||||
|
{"CaligoPL_by_CaligoPL.png", "CaligoPL",},
|
||||||
|
{"Charizard_by_Ferdi_Napoli.png", "Charizard",},
|
||||||
|
{"Charlotte_by_Sporax.png", "Charlotte",},
|
||||||
|
{"Chloé_by_nelly.png", "Chloé (by nelly) ",},
|
||||||
|
{"Chloé_by_Sporax.png", "Chloé (by Sporax)",},
|
||||||
|
{"Chop_by_Ferdi_Napoli.png", "Chop",},
|
||||||
|
{"Coralie_by_loupicate.png", "Coralie",},
|
||||||
|
{"Devil_by_viv100.png", "Devil",},
|
||||||
|
{"Emma_by_Cidney7760.png", "Emma",},
|
||||||
|
{"Female_angel_by_loupicate.png", "Angel (female)",},
|
||||||
|
{"Finn_The_Adventured_by_Ferdi_Napoli.png", "Finn",},
|
||||||
|
{"Fiona_by_loupicate.png", "Fiona",},
|
||||||
|
{"Fire_Mario_by_Ferdi_Napoli.png", "Fire Mario",},
|
||||||
|
{"Grégoire_by_Sporax.png", "Grégoire",},
|
||||||
|
{"Hobo_by_Minetestian.png", "Hobo",},
|
||||||
|
{"Infantry_man_by_philipbenr.png", "Infantry Man",},
|
||||||
|
{"Iris_by_loupicate.png", "Iris",},
|
||||||
|
{"Iron_Man_MK._7_by_Jordach.png", "Iron Man",},
|
||||||
|
{"Jake_by_Ferdi_Napoli.png", "Jake",},
|
||||||
|
{"Joker_by_Ferdi_Napoli.png", "Joker",},
|
||||||
|
{"Julia_by_nelly.png", "Julia",},
|
||||||
|
{"Ladyvioletkitty_by_lordphoenixmh.png", "LadyVioletKitty",},
|
||||||
|
{"Link_by_tux_peng.png", "Link",},
|
||||||
|
{"lisa_by_hansuke123.png", "Lisa",},
|
||||||
|
{"Male_angel_by_loupicate.png", "Angel (male)",},
|
||||||
|
{"Morgane_by_loupicate.png", "Morgane",},
|
||||||
|
{"Naruto_by_LuxAtheris.png", "Naruto",},
|
||||||
|
{"NERD_by_DJOZZY.png", "NERD",},
|
||||||
|
{"Older_Man_Sam_by_philipbenr.png", "Sam (older man)",},
|
||||||
|
{"philipbenr_by_philipbenr.png", "PhilipBenR",},
|
||||||
|
{"skin_minecraft_repris_by_Sporax.png", "Minecraft Repris",},
|
||||||
|
{"Space_Sam_by_philipbenr.png", "Sam (space)",},
|
||||||
|
{"Summer_by_lizzie.png", "Summer",},
|
||||||
|
{"SuperSam_by_AMMOnym.png", "Sam (super)",},
|
||||||
|
{"villiantest_III_by_marshrover.png", "VillianTest",},
|
||||||
|
{"War_Machine_by_Ferdi_Napoli.png", "War Machine",},
|
||||||
|
{"Witch_by_loupicate.png", "Witch",},
|
||||||
|
{"Zenohelds_by_sdzen.png", "Zenohelds",},
|
||||||
|
{"tessas_skin.png", "Tessa",},
|
||||||
|
}
|
||||||
|
|
||||||
|
for skin in pairs(skins) do
|
||||||
|
local key = skin[1]
|
||||||
|
local value = skin[2]
|
||||||
|
|
||||||
|
if not texture_exists(key) then
|
||||||
|
logit("warning", "texture " .. key .. " not found in " .. texture_dir)
|
||||||
|
end
|
||||||
|
|
||||||
|
wardrobe.registerSkin(skin[1], skin[2])
|
||||||
|
end
|
3
mods/antum/skins/mod.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name = antum_skins
|
||||||
|
description =
|
||||||
|
depends = wardrobe
|
Before Width: | Height: | Size: 855 B After Width: | Height: | Size: 855 B |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 992 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 521 B |
Before Width: | Height: | Size: 739 B After Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 517 B |
Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 753 B |
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 972 B |
41
mods/antum/skins/textures/LICENSES.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
- [Ashley_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=885): CC BY-SA
|
||||||
|
- [BlueZ_Sam_II_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=143): CC BY-SA
|
||||||
|
- [CaligoPL_by_CaligoPL.png](http://minetest.fensta.bplaced.net/#id=99): CC BY-SA
|
||||||
|
- [Charizard_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=172): CC BY-NC-SA
|
||||||
|
- [Charlotte_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=852): CC BY-SA
|
||||||
|
- [Chloé_by_nelly.png](http://minetest.fensta.bplaced.net/#id=847): CC BY-SA
|
||||||
|
- [Chloé_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=851): CC BY-SA
|
||||||
|
- [Chop_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=164): CC BY-NC-SA
|
||||||
|
- [Coralie_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=894): CC BY-SA
|
||||||
|
- [Devil_by_viv100.png](http://minetest.fensta.bplaced.net/#id=93): CC BY-SA
|
||||||
|
- [Emma_by_Cidney7760.png](http://minetest.fensta.bplaced.net/#id=101): CC BY-SA
|
||||||
|
- [Female_angel_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=890): CC BY-SA
|
||||||
|
- [Finn_The_Adventured_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=175): CC BY-NC-SA
|
||||||
|
- [Fiona_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=860): CC BY-SA
|
||||||
|
- [Fire_Mario_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=198): CC BY-NC-SA
|
||||||
|
- [Grégoire_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=850): CC BY-SA
|
||||||
|
- [Hobo_by_Minetestian.png](http://minetest.fensta.bplaced.net/#id=112): CC BY-SA
|
||||||
|
- [Infantry_man_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=82): CC BY-SA
|
||||||
|
- [Iris_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=862): CC BY-SA
|
||||||
|
- [Iron_Man_MK._7_by_Jordach.png](http://minetest.fensta.bplaced.net/#id=6): CC BY-NC-SA
|
||||||
|
- [Jake_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=176): CC BY-NC-SA
|
||||||
|
- [Joker_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=178): CC BY-NC-SA
|
||||||
|
- [Julia_by_nelly.png](http://minetest.fensta.bplaced.net/#id=859): CC BY-SA
|
||||||
|
- [Ladyvioletkitty_by_lordphoenixmh.png](http://minetest.fensta.bplaced.net/#id=162): CC BY
|
||||||
|
- [Link_by_tux_peng.png](http://minetest.fensta.bplaced.net/#id=126): CC BY-NC-SA
|
||||||
|
- [lisa_by_hansuke123.png](http://minetest.fensta.bplaced.net/#id=88): CC BY-SA
|
||||||
|
- [Male_angel_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=895): CC BY-SA
|
||||||
|
- [Morgane_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=864): CC BY-SA
|
||||||
|
- [Naruto_by_LuxAtheris.png](http://minetest.fensta.bplaced.net/#id=136): CC BY-SA
|
||||||
|
- [NERD_by_DJOZZY.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
||||||
|
- [Older_Man_Sam_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=21): CC BY-SA
|
||||||
|
- [philipbenr_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=54): CC BY-SA
|
||||||
|
- [skin_minecraft_repris_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=856): CC BY-SA
|
||||||
|
- [Space_Sam_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=37): CC BY-SA
|
||||||
|
- [Summer_by_lizzie.png](http://minetest.fensta.bplaced.net/#id=): CC BY-NC-SA
|
||||||
|
- [SuperSam_by_AMMOnym.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
||||||
|
- [villiantest_III_by_marshrover.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
||||||
|
- [War_Machine_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=169): CC BY-NC-SA
|
||||||
|
- [Witch_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=884): CC BY-SA
|
||||||
|
- [Zenohelds_by_sdzen.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 723 B After Width: | Height: | Size: 723 B |
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 737 B After Width: | Height: | Size: 737 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 1006 B |
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
24
mods/player/visuals/wardrobe/LICENSE.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Original code by prestidigitator (WTFPL)
|
||||||
|
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2021 Jordan Irwin <antumdeluge@gmail.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
@ -1,5 +1,7 @@
|
|||||||
Wardrobe Minetest Mod
|
# Wardrobe Minetest Mod
|
||||||
=====================
|
|
||||||
|
|
||||||
|
Originally by [prestidigitator](https://forum.minetest.net/viewtopic.php?t=9680).
|
||||||
|
|
||||||
This mod provides a very simple way to change the skin on the default character
|
This mod provides a very simple way to change the skin on the default character
|
||||||
mesh. Unlike other skin-changing mods out there, it does not attempt to change
|
mesh. Unlike other skin-changing mods out there, it does not attempt to change
|
||||||
@ -31,8 +33,9 @@ higher resolution as long as they have an aspect ratio of 2:1. The author of
|
|||||||
this mod created a very high resolution version of the default character and it
|
this mod created a very high resolution version of the default character and it
|
||||||
works well (but has not been included to simplify mod licensing).
|
works well (but has not been included to simplify mod licensing).
|
||||||
|
|
||||||
Skins File Syntax
|
|
||||||
-----------------
|
---
|
||||||
|
## Skins File Syntax
|
||||||
|
|
||||||
A comment line starts with two dashes (like in Lua), but must be the only thing
|
A comment line starts with two dashes (like in Lua), but must be the only thing
|
||||||
on the line:
|
on the line:
|
||||||
@ -67,12 +70,13 @@ particular world), prepend a minus sign (-) to the line. For example:
|
|||||||
would remove the "skin_other_texture_file_name.png" skin no matter where it was
|
would remove the "skin_other_texture_file_name.png" skin no matter where it was
|
||||||
specified or what name it was given.
|
specified or what name it was given.
|
||||||
|
|
||||||
Mod Details
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Required Minetest Version: >=0.4.9 (not tested in earlier versions)
|
---
|
||||||
|
### Mod Details
|
||||||
|
|
||||||
Dependencies: default, wool (both included in minetest_game)
|
Required Minetest Version: >=0.5.0
|
||||||
|
|
||||||
|
Dependencies: default, player_api, wool (included in minetest_game)
|
||||||
|
|
||||||
Recipies:
|
Recipies:
|
||||||
|
|
||||||
@ -80,24 +84,27 @@ Recipies:
|
|||||||
* S - any stick
|
* S - any stick
|
||||||
* L - any wool
|
* L - any wool
|
||||||
|
|
||||||
|
```
|
||||||
wardrobe:
|
wardrobe:
|
||||||
W S W
|
W S W
|
||||||
W L W
|
W L W
|
||||||
W L W
|
W L W
|
||||||
|
```
|
||||||
|
|
||||||
Git Repo: https://github.com/prestidigitator/minetest-mod-wardrobe
|
Git Repo: https://github.com/AntumMT/mod-wardrobe
|
||||||
|
|
||||||
Copyright and Licensing
|
|
||||||
-----------------------
|
---
|
||||||
|
## Copyright and Licensing
|
||||||
|
|
||||||
All contents, including source code, documentation, and images, are the
|
All contents, including source code, documentation, and images, are the
|
||||||
original creations of the mod author.
|
original creations of the mod author.
|
||||||
|
|
||||||
Author: prestidigitator (as registered on forum.minetest.net)
|
License: [MIT](LICENSE.txt)
|
||||||
License: WTFPL (all content)
|
|
||||||
|
|
||||||
Change History
|
|
||||||
--------------
|
---
|
||||||
|
## Change History
|
||||||
|
|
||||||
Version 1.0
|
Version 1.0
|
||||||
|
|
||||||
@ -111,3 +118,12 @@ Version 1.1
|
|||||||
* Auto-detection of player mesh name (thank you indriApollo).
|
* Auto-detection of player mesh name (thank you indriApollo).
|
||||||
* Removed warning caused by access of uninitialized global variale (even though
|
* Removed warning caused by access of uninitialized global variale (even though
|
||||||
it was just a check for nil).
|
it was just a check for nil).
|
||||||
|
|
||||||
|
Version 1.2
|
||||||
|
|
||||||
|
* Released 2021-04-20
|
||||||
|
* License changed to MIT.
|
||||||
|
* Added player_api as dependency.
|
||||||
|
* External mods can register skins.
|
||||||
|
* Skins can be registered individually from within mod code.
|
||||||
|
* Number of displayed skins can be set in server configuration file.
|
@ -1,2 +0,0 @@
|
|||||||
default
|
|
||||||
wool
|
|
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 245 KiB |
Before Width: | Height: | Size: 30 KiB |
@ -1,621 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="64"
|
|
||||||
height="32"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.4 r9939"
|
|
||||||
sodipodi:docname="skinTemplate.svg">
|
|
||||||
<defs
|
|
||||||
id="defs4" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="22.203125"
|
|
||||||
inkscape:cx="32"
|
|
||||||
inkscape:cy="16"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer3"
|
|
||||||
showgrid="true"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1025"
|
|
||||||
inkscape:window-x="1918"
|
|
||||||
inkscape:window-y="-3"
|
|
||||||
inkscape:window-maximized="1">
|
|
||||||
<inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid4860"
|
|
||||||
units="px"
|
|
||||||
empspacing="4"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true"
|
|
||||||
spacingx="1px"
|
|
||||||
spacingy="1px" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="template"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1020.3622)"
|
|
||||||
sodipodi:insensitive="true">
|
|
||||||
<flowRoot
|
|
||||||
xml:space="preserve"
|
|
||||||
id="flowRoot4001"
|
|
||||||
style="font-size:4px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
transform="translate(0,1020.3622)"><flowRegion
|
|
||||||
id="flowRegion4003"><rect
|
|
||||||
id="rect4005"
|
|
||||||
width="36.178391"
|
|
||||||
height="16.751614"
|
|
||||||
x="23.821686"
|
|
||||||
y="17.3503" /></flowRegion><flowPara
|
|
||||||
id="flowPara4007"></flowPara></flowRoot> <g
|
|
||||||
style="display:inline"
|
|
||||||
id="g4689"
|
|
||||||
transform="translate(-20,0)">
|
|
||||||
<path
|
|
||||||
style="fill:#ff00ff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 20,1052.3622 16,0 0,-12 -4,0 0,-4 -8,0 0,4 -4,0 z"
|
|
||||||
id="path4691"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccccccc" />
|
|
||||||
<path
|
|
||||||
id="path4693"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 0.25;stroke-dashoffset:0"
|
|
||||||
d="m 24,1040.3622 4,0 m 0,0 0,12 m 4,0 0,-12 m -8,0 0,12"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccc" />
|
|
||||||
<path
|
|
||||||
id="path4818-8"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
d="m 32,1040.3622 -4,0 m 0,-4 0,4"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<g
|
|
||||||
id="g4695">
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4697"
|
|
||||||
y="1045.1437"
|
|
||||||
x="27.926758"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1"
|
|
||||||
y="1045.1437"
|
|
||||||
x="27.926758"
|
|
||||||
id="tspan4699"
|
|
||||||
sodipodi:role="line">Legs</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4701"
|
|
||||||
y="1039.4557"
|
|
||||||
x="26.000732"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1039.4557"
|
|
||||||
x="26.000732"
|
|
||||||
id="tspan4703"
|
|
||||||
sodipodi:role="line">T</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4705"
|
|
||||||
y="1039.4557"
|
|
||||||
x="29.958252"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1039.4557"
|
|
||||||
x="29.958252"
|
|
||||||
id="tspan4707"
|
|
||||||
sodipodi:role="line">B</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4709"
|
|
||||||
y="1049.4557"
|
|
||||||
x="25.941406"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1049.4557"
|
|
||||||
x="25.941406"
|
|
||||||
id="tspan4711"
|
|
||||||
sodipodi:role="line">F</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4713"
|
|
||||||
y="1049.4557"
|
|
||||||
x="34"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1049.4557"
|
|
||||||
x="34"
|
|
||||||
id="tspan4715"
|
|
||||||
sodipodi:role="line">H</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4717"
|
|
||||||
y="1049.4542"
|
|
||||||
x="22"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1049.4542"
|
|
||||||
x="22"
|
|
||||||
id="tspan4719"
|
|
||||||
sodipodi:role="line">O</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4721"
|
|
||||||
y="1049.4557"
|
|
||||||
x="30"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
|
|
||||||
y="1049.4557"
|
|
||||||
x="30"
|
|
||||||
id="tspan4723"
|
|
||||||
sodipodi:role="line">I</tspan></text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="display:inline"
|
|
||||||
id="g4128">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="ccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path3925"
|
|
||||||
d="m 64,1036.3622 0,-8 -8,0 0,-8 -16,0 0,8 -8,0 0,8 z"
|
|
||||||
style="fill:#8181ff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
id="path3964"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.5, 0.5;stroke-dashoffset:0"
|
|
||||||
d="m 40,1028.3622 8,0 m 8,0 0,8 m -8,-8 0,8 m -8,-8 0,8"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccc" />
|
|
||||||
<path
|
|
||||||
id="path4818-6"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
d="m 56,1028.3622 -8,0 m 0,-8 0,8"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<g
|
|
||||||
id="g4180">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="47.980957"
|
|
||||||
y="1029.4806"
|
|
||||||
id="text3973"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3975"
|
|
||||||
x="47.980957"
|
|
||||||
y="1029.4806"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Helm</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="44.000732"
|
|
||||||
y="1025.4557"
|
|
||||||
id="text3977"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3979"
|
|
||||||
x="44.000732"
|
|
||||||
y="1025.4557">T</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="51.958252"
|
|
||||||
y="1025.4557"
|
|
||||||
id="text3981"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3983"
|
|
||||||
x="51.958252"
|
|
||||||
y="1025.4557">B</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="35.896729"
|
|
||||||
y="1033.4557"
|
|
||||||
id="text3985"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3987"
|
|
||||||
x="35.896729"
|
|
||||||
y="1033.4557">R</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="43.941406"
|
|
||||||
y="1033.4557"
|
|
||||||
id="text3989"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3991"
|
|
||||||
x="43.941406"
|
|
||||||
y="1033.4557">F</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="51.860107"
|
|
||||||
y="1033.4557"
|
|
||||||
id="text3993"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3995"
|
|
||||||
x="51.860107"
|
|
||||||
y="1033.4557">L</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="60"
|
|
||||||
y="1033.4557"
|
|
||||||
id="text3997"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3999"
|
|
||||||
x="60"
|
|
||||||
y="1033.4557">H</tspan></text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="display:inline"
|
|
||||||
id="g4196"
|
|
||||||
transform="translate(-32,0)">
|
|
||||||
<path
|
|
||||||
style="fill:#90ff81;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 64,1036.3622 0,-8 -8,0 0,-8 -16,0 0,8 -8,0 0,8 z"
|
|
||||||
id="path4198"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccccccc" />
|
|
||||||
<path
|
|
||||||
d="m 40,1028.3622 8,0 m 8,0 0,8 m -8,-8 0,8 m -8,-8 0,8"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.5, 0.5;stroke-dashoffset:0"
|
|
||||||
id="path4200"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccc" />
|
|
||||||
<path
|
|
||||||
id="path4818"
|
|
||||||
transform="translate(32,1020.3622)"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 24,8 -8,0 m 0,-8 0,8"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<g
|
|
||||||
id="g4202">
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4204"
|
|
||||||
y="1029.4806"
|
|
||||||
x="47.989014"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1"
|
|
||||||
y="1029.4806"
|
|
||||||
x="47.989014"
|
|
||||||
id="tspan4206"
|
|
||||||
sodipodi:role="line">Head</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4208"
|
|
||||||
y="1025.4557"
|
|
||||||
x="44.000732"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1025.4557"
|
|
||||||
x="44.000732"
|
|
||||||
id="tspan4210"
|
|
||||||
sodipodi:role="line">T</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4212"
|
|
||||||
y="1025.4557"
|
|
||||||
x="51.958252"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1025.4557"
|
|
||||||
x="51.958252"
|
|
||||||
id="tspan4214"
|
|
||||||
sodipodi:role="line">B</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4216"
|
|
||||||
y="1033.4557"
|
|
||||||
x="35.896729"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1033.4557"
|
|
||||||
x="35.896729"
|
|
||||||
id="tspan4218"
|
|
||||||
sodipodi:role="line">R</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4220"
|
|
||||||
y="1033.4557"
|
|
||||||
x="43.941406"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1033.4557"
|
|
||||||
x="43.941406"
|
|
||||||
id="tspan4222"
|
|
||||||
sodipodi:role="line">F</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4224"
|
|
||||||
y="1033.4557"
|
|
||||||
x="51.860107"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1033.4557"
|
|
||||||
x="51.860107"
|
|
||||||
id="tspan4226"
|
|
||||||
sodipodi:role="line">L</tspan></text>
|
|
||||||
<text
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
id="text4228"
|
|
||||||
y="1033.4557"
|
|
||||||
x="60"
|
|
||||||
style="font-size:3px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
y="1033.4557"
|
|
||||||
x="60"
|
|
||||||
id="tspan4230"
|
|
||||||
sodipodi:role="line">H</tspan></text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="display:inline"
|
|
||||||
transform="translate(20,0)"
|
|
||||||
id="g4496">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="ccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4232"
|
|
||||||
d="m 20,1052.3622 16,0 0,-12 -4,0 0,-4 -8,0 0,4 -4,0 z"
|
|
||||||
style="fill:#ff00ff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 24,1040.3622 4,0 m 0,0 0,12 m 4,0 0,-12 m -8,0 0,12"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 0.25;stroke-dashoffset:0"
|
|
||||||
id="path4277" />
|
|
||||||
<path
|
|
||||||
id="path4818-1"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
d="m 32,1040.3622 -4,0 m 0,-4 0,4"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<g
|
|
||||||
id="g4480">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="28.062256"
|
|
||||||
y="1045.4344"
|
|
||||||
id="text4280"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282"
|
|
||||||
x="28.062256"
|
|
||||||
y="1045.4344"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Arms</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="26.000732"
|
|
||||||
y="1039.4557"
|
|
||||||
id="text4280-6"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3"
|
|
||||||
x="26.000732"
|
|
||||||
y="1039.4557"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">T</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="29.958252"
|
|
||||||
y="1039.4557"
|
|
||||||
id="text4280-6-3"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3-4"
|
|
||||||
x="29.958252"
|
|
||||||
y="1039.4557"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">B</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="25.941406"
|
|
||||||
y="1049.4557"
|
|
||||||
id="text4280-6-3-8"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3-4-1"
|
|
||||||
x="25.941406"
|
|
||||||
y="1049.4557"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">F</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="34"
|
|
||||||
y="1049.4557"
|
|
||||||
id="text4280-6-3-0"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3-4-2"
|
|
||||||
x="34"
|
|
||||||
y="1049.4557"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">H</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="22"
|
|
||||||
y="1049.4542"
|
|
||||||
id="text4280-6-3-88"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3-4-23"
|
|
||||||
x="22"
|
|
||||||
y="1049.4542"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">O</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="30"
|
|
||||||
y="1049.4557"
|
|
||||||
id="text4280-6-3-6"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4282-3-4-16"
|
|
||||||
x="30"
|
|
||||||
y="1049.4557"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">I</tspan></text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="display:inline"
|
|
||||||
id="g4670"
|
|
||||||
transform="translate(0,1000.3622)">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="ccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4533"
|
|
||||||
d="m 16,52 24,0 0,-12 -4,0 0,-4 -16,0 0,4 -4,0 z"
|
|
||||||
style="fill:#00bdc0;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 32,40 0,12 m -4,-12 0,12 m -8,-12 8,0 m -8,0 0,12"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 0.5;stroke-dashoffset:0"
|
|
||||||
id="path4541" />
|
|
||||||
<path
|
|
||||||
id="path4818-2"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
d="m 36,40 -8,0 m 0,-4 0,4"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<g
|
|
||||||
id="g4654">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
|
||||||
x="27.897461"
|
|
||||||
y="44.827637"
|
|
||||||
id="text4544"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546"
|
|
||||||
x="27.897461"
|
|
||||||
y="44.827637"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Body</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="24.000732"
|
|
||||||
y="39.093506"
|
|
||||||
id="text4544-0"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8"
|
|
||||||
x="24.000732"
|
|
||||||
y="39.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">T</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="31.958252"
|
|
||||||
y="39.093506"
|
|
||||||
id="text4544-0-7"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8-7"
|
|
||||||
x="31.958252"
|
|
||||||
y="39.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">B</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="17.896729"
|
|
||||||
y="49.093506"
|
|
||||||
id="text4544-0-1"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8-3"
|
|
||||||
x="17.896729"
|
|
||||||
y="49.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">R</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="23.941406"
|
|
||||||
y="49.093506"
|
|
||||||
id="text4544-0-16"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8-1"
|
|
||||||
x="23.941406"
|
|
||||||
y="49.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">F</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="29.860107"
|
|
||||||
y="49.093506"
|
|
||||||
id="text4544-0-6"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8-9"
|
|
||||||
x="29.860107"
|
|
||||||
y="49.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">L</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-size:1px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
|
||||||
x="36"
|
|
||||||
y="49.093506"
|
|
||||||
id="text4544-0-60"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4546-8-19"
|
|
||||||
x="36"
|
|
||||||
y="49.093506"
|
|
||||||
style="font-size:3px;text-align:center;text-anchor:middle">H</tspan></text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer3"
|
|
||||||
inkscape:label="drawing" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 28 KiB |
@ -1,343 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.4 r9939"
|
|
||||||
sodipodi:docname="New document 1">
|
|
||||||
<defs
|
|
||||||
id="defs4">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5302"
|
|
||||||
osb:paint="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#46341e;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5304" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="50.75"
|
|
||||||
inkscape:cx="8"
|
|
||||||
inkscape:cy="8"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="990"
|
|
||||||
inkscape:window-x="-2"
|
|
||||||
inkscape:window-y="32"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1036.3622)">
|
|
||||||
<g
|
|
||||||
id="g5525-0"
|
|
||||||
transform="translate(6,0)" />
|
|
||||||
<g
|
|
||||||
id="g5783">
|
|
||||||
<g
|
|
||||||
id="g5762">
|
|
||||||
<rect
|
|
||||||
style="fill:#b48b5b;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
x="0"
|
|
||||||
y="1036.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#46341e;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0"
|
|
||||||
width="14"
|
|
||||||
height="14"
|
|
||||||
x="1"
|
|
||||||
y="1037.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#d7d7d7;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9"
|
|
||||||
width="14"
|
|
||||||
height="1"
|
|
||||||
x="1"
|
|
||||||
y="1039.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5775">
|
|
||||||
<rect
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="2"
|
|
||||||
y="1038.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-4"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="4"
|
|
||||||
y="1038.3622" />
|
|
||||||
<rect
|
|
||||||
y="1038.3622"
|
|
||||||
x="6"
|
|
||||||
height="3"
|
|
||||||
width="1"
|
|
||||||
id="rect5362"
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5364"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="8"
|
|
||||||
y="1038.3622" />
|
|
||||||
<rect
|
|
||||||
y="1038.3622"
|
|
||||||
x="10"
|
|
||||||
height="3"
|
|
||||||
width="1"
|
|
||||||
id="rect5366"
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#cdc0b2;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5368"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="13"
|
|
||||||
y="1038.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5767">
|
|
||||||
<g
|
|
||||||
id="g5432">
|
|
||||||
<path
|
|
||||||
style="fill:#3c58c8;fill-opacity:1;stroke:none"
|
|
||||||
d="m 14,15 0,-3 -1,0 0,2 -1,0 0,1 z"
|
|
||||||
id="path5434"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccccc"
|
|
||||||
transform="translate(0,1036.3622)" />
|
|
||||||
<rect
|
|
||||||
style="fill:#c8c8c8;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5436"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="13"
|
|
||||||
y="1048.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5428"
|
|
||||||
transform="translate(1,0)">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="ccccccc"
|
|
||||||
transform="translate(0,1036.3622)"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path5424"
|
|
||||||
d="m 14,15 0,-3 -1,0 0,2 -1,0 0,1 z"
|
|
||||||
style="fill:#5577ff;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
y="1048.3622"
|
|
||||||
x="13"
|
|
||||||
height="1"
|
|
||||||
width="1"
|
|
||||||
id="rect5426"
|
|
||||||
style="fill:#e6e6e6;fill-opacity:1;stroke:none" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5499">
|
|
||||||
<rect
|
|
||||||
style="fill:#ff0000;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47"
|
|
||||||
width="1"
|
|
||||||
height="5"
|
|
||||||
x="2"
|
|
||||||
y="1040.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#ffff00;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-8"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="2"
|
|
||||||
y="1043.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#c80000;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="2"
|
|
||||||
y="1045.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
transform="translate(2,0)"
|
|
||||||
id="g5525">
|
|
||||||
<rect
|
|
||||||
style="fill:#213c94;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5505"
|
|
||||||
width="1"
|
|
||||||
height="8"
|
|
||||||
x="4"
|
|
||||||
y="1041.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#293765;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5505-9"
|
|
||||||
width="1"
|
|
||||||
height="8"
|
|
||||||
x="3"
|
|
||||||
y="1041.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5499-8"
|
|
||||||
transform="translate(2,0)">
|
|
||||||
<rect
|
|
||||||
style="fill:#5aff00;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-1"
|
|
||||||
width="1"
|
|
||||||
height="5"
|
|
||||||
x="2"
|
|
||||||
y="1040.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#47c800;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9-2"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="2"
|
|
||||||
y="1045.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5499-85"
|
|
||||||
transform="translate(6,0)">
|
|
||||||
<rect
|
|
||||||
style="fill:#ff0000;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-3"
|
|
||||||
width="1"
|
|
||||||
height="5"
|
|
||||||
x="2"
|
|
||||||
y="1040.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#3141d3;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-8-5"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="2"
|
|
||||||
y="1043.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#394184;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9-8"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="2"
|
|
||||||
y="1045.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#3141d3;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-8-5-0"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="2"
|
|
||||||
y="1041.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
transform="matrix(-1,0,0,1,15,-4)"
|
|
||||||
id="g5525-8">
|
|
||||||
<rect
|
|
||||||
style="fill:#213c94;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5505-1"
|
|
||||||
width="1"
|
|
||||||
height="4"
|
|
||||||
x="4"
|
|
||||||
y="1045.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#293765;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5505-9-1"
|
|
||||||
width="1"
|
|
||||||
height="4"
|
|
||||||
x="3"
|
|
||||||
y="1045.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5499-8-1"
|
|
||||||
transform="translate(11,0)">
|
|
||||||
<rect
|
|
||||||
style="fill:#f000ff;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-1-0"
|
|
||||||
width="1"
|
|
||||||
height="5"
|
|
||||||
x="2"
|
|
||||||
y="1040.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#bc00c8;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9-2-3"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="2"
|
|
||||||
y="1045.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
transform="translate(0.13374519,0.09950469)"
|
|
||||||
id="g5734">
|
|
||||||
<rect
|
|
||||||
style="fill:#bc00c8;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9-2-3-4"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="9.8662548"
|
|
||||||
y="1050.2627" />
|
|
||||||
<rect
|
|
||||||
y="1049.2627"
|
|
||||||
x="9.8662548"
|
|
||||||
height="1"
|
|
||||||
width="1"
|
|
||||||
id="rect5426-7"
|
|
||||||
style="fill:#b1b1b1;fill-opacity:1;stroke:none" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
transform="translate(-1.8662548,0.09950469)"
|
|
||||||
id="g5734-5">
|
|
||||||
<rect
|
|
||||||
style="fill:#bc00c8;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753-0-9-0-47-0-9-2-3-4-1"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="9.8662548"
|
|
||||||
y="1050.2627" />
|
|
||||||
<rect
|
|
||||||
y="1050.2627"
|
|
||||||
x="8.8662548"
|
|
||||||
height="1"
|
|
||||||
width="1"
|
|
||||||
id="rect5426-7-9"
|
|
||||||
style="fill:#979797;fill-opacity:1;stroke:none" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 9.1 KiB |
@ -1,236 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.4 r9939"
|
|
||||||
sodipodi:docname="wardrobe_wardrobeFront.svg"
|
|
||||||
inkscape:export-filename="/home/merlin/dev/mt/wardrobe/wardrobe_wardrobeFront.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90">
|
|
||||||
<defs
|
|
||||||
id="defs4">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5302"
|
|
||||||
osb:paint="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#46341e;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5304" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="35.885669"
|
|
||||||
inkscape:cx="7.7796302"
|
|
||||||
inkscape:cy="7.6898499"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="990"
|
|
||||||
inkscape:window-x="-2"
|
|
||||||
inkscape:window-y="32"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1036.3622)">
|
|
||||||
<g
|
|
||||||
id="g5525-0"
|
|
||||||
transform="translate(6,0)" />
|
|
||||||
<g
|
|
||||||
id="g6128">
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="0"
|
|
||||||
height="16"
|
|
||||||
width="16"
|
|
||||||
id="rect3753"
|
|
||||||
style="fill:#b48b5b;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5926"
|
|
||||||
width="1"
|
|
||||||
height="16"
|
|
||||||
x="3"
|
|
||||||
y="1036.3622" />
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="5"
|
|
||||||
height="16"
|
|
||||||
width="1"
|
|
||||||
id="rect5928"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5930"
|
|
||||||
width="1"
|
|
||||||
height="16"
|
|
||||||
x="7"
|
|
||||||
y="1036.3622" />
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="10"
|
|
||||||
height="16"
|
|
||||||
width="1"
|
|
||||||
id="rect5932"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="14"
|
|
||||||
height="16"
|
|
||||||
width="1"
|
|
||||||
id="rect5936"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<g
|
|
||||||
id="g5975">
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5951"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="8"
|
|
||||||
y="1047.3622" />
|
|
||||||
<rect
|
|
||||||
y="1043.3622"
|
|
||||||
x="8"
|
|
||||||
height="2"
|
|
||||||
width="1"
|
|
||||||
id="rect5971"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5973"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="8"
|
|
||||||
y="1037.3622" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
transform="matrix(1,0,0,-1,-5.9901478,2088.7244)"
|
|
||||||
id="g5980">
|
|
||||||
<rect
|
|
||||||
y="1047.3622"
|
|
||||||
x="8"
|
|
||||||
height="3"
|
|
||||||
width="1"
|
|
||||||
id="rect5982"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5984"
|
|
||||||
width="1"
|
|
||||||
height="2"
|
|
||||||
x="8"
|
|
||||||
y="1043.3622" />
|
|
||||||
<rect
|
|
||||||
y="1037.3622"
|
|
||||||
x="8"
|
|
||||||
height="3"
|
|
||||||
width="1"
|
|
||||||
id="rect5986"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g5975-9"
|
|
||||||
transform="translate(4,1.0000174)">
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5951-3"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="8"
|
|
||||||
y="1047.3622" />
|
|
||||||
<rect
|
|
||||||
y="1041.3622"
|
|
||||||
x="8"
|
|
||||||
height="3"
|
|
||||||
width="1"
|
|
||||||
id="rect5971-2"
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
style="fill:#9a764c;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5973-2"
|
|
||||||
width="1"
|
|
||||||
height="2"
|
|
||||||
x="8"
|
|
||||||
y="1037.3622" />
|
|
||||||
</g>
|
|
||||||
<rect
|
|
||||||
y="1042.3622"
|
|
||||||
x="5"
|
|
||||||
height="4"
|
|
||||||
width="1"
|
|
||||||
id="rect5928-7"
|
|
||||||
style="fill:#aa7b45;fill-opacity:1;stroke:none" />
|
|
||||||
<g
|
|
||||||
id="g6087">
|
|
||||||
<rect
|
|
||||||
style="fill:#aa7b45;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5928-7-4"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="10"
|
|
||||||
y="1047.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#aa7b45;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5928-7-4-0"
|
|
||||||
width="1"
|
|
||||||
height="3"
|
|
||||||
x="10"
|
|
||||||
y="1041.3622" />
|
|
||||||
<rect
|
|
||||||
style="fill:#aa7b45;fill-opacity:1;stroke:none"
|
|
||||||
id="rect5928-7-4-0-3"
|
|
||||||
width="1"
|
|
||||||
height="1"
|
|
||||||
x="10"
|
|
||||||
y="1037.3622" />
|
|
||||||
</g>
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="1"
|
|
||||||
height="16"
|
|
||||||
width="1"
|
|
||||||
id="rect5936-9"
|
|
||||||
style="fill:#ba9973;fill-opacity:1;stroke:none" />
|
|
||||||
<rect
|
|
||||||
y="1036.3622"
|
|
||||||
x="13"
|
|
||||||
height="16"
|
|
||||||
width="1"
|
|
||||||
id="rect5936-9-3"
|
|
||||||
style="fill:#ba9973;fill-opacity:1;stroke:none" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 6.1 KiB |
@ -1,79 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.4 r9939"
|
|
||||||
sodipodi:docname="wardrobe_wardrobe_sides.svg"
|
|
||||||
inkscape:export-filename="/home/merlin/dev/mt/wardrobe/wardrobe_wardrobeFront.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90">
|
|
||||||
<defs
|
|
||||||
id="defs4">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5302"
|
|
||||||
osb:paint="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#46341e;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5304" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="35.885669"
|
|
||||||
inkscape:cx="7.7796302"
|
|
||||||
inkscape:cy="7.6898499"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="990"
|
|
||||||
inkscape:window-x="-2"
|
|
||||||
inkscape:window-y="32"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1036.3622)">
|
|
||||||
<g
|
|
||||||
id="g5525-0"
|
|
||||||
transform="translate(6,0)" />
|
|
||||||
<rect
|
|
||||||
style="fill:#b48b5b;fill-opacity:1;stroke:none"
|
|
||||||
id="rect3753"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
x="0"
|
|
||||||
y="1036.3622" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,15 +1,17 @@
|
|||||||
local MOD_NAME = minetest.get_current_modname();
|
|
||||||
local MOD_PATH = minetest.get_modpath(MOD_NAME);
|
|
||||||
local WORLD_PATH = minetest.get_worldpath();
|
|
||||||
|
|
||||||
if MOD_NAME ~= "wardrobe" then
|
local world_path = core.get_worldpath();
|
||||||
error("mod directory must be named 'wardrobe'");
|
|
||||||
end
|
|
||||||
wardrobe = {};
|
wardrobe = {};
|
||||||
|
wardrobe.name = core.get_current_modname();
|
||||||
|
wardrobe.path = core.get_modpath(wardrobe.name)
|
||||||
|
wardrobe.player_skin_db = world_path.."/playerSkins.txt"
|
||||||
|
wardrobe.skin_files = {wardrobe.path.."/skins.txt", world_path.."/skins.txt"};
|
||||||
|
wardrobe.playerSkins = {}
|
||||||
|
|
||||||
local initSkin, changeSkin, updateSkin = dofile(MOD_PATH.."/skinMethods.lua");
|
dofile(wardrobe.path.."/settings.lua")
|
||||||
dofile(MOD_PATH.."/storage.lua");
|
local initSkin, changeSkin, updateSkin = dofile(wardrobe.path.."/skinMethods.lua");
|
||||||
dofile(MOD_PATH.."/wardrobe.lua");
|
dofile(wardrobe.path.."/storage.lua");
|
||||||
|
dofile(wardrobe.path.."/wardrobe.lua");
|
||||||
|
|
||||||
|
|
||||||
-- API
|
-- API
|
||||||
@ -39,27 +41,27 @@ wardrobe.setPlayerSkin = updateSkin;
|
|||||||
-- Name of the skin.
|
-- Name of the skin.
|
||||||
--
|
--
|
||||||
function wardrobe.changePlayerSkin(playerName, skin)
|
function wardrobe.changePlayerSkin(playerName, skin)
|
||||||
changeSkin(playerName, skin);
|
changeSkin(playerName, skin);
|
||||||
|
|
||||||
local player = minetest.get_player_by_name(playerName);
|
local player = core.get_player_by_name(playerName);
|
||||||
if player then updateSkin(player); end;
|
if player then updateSkin(player); end;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
wardrobe.storage.loadSkins();
|
wardrobe.loadSkins();
|
||||||
wardrobe.storage.loadPlayerSkins();
|
wardrobe.loadPlayerSkins();
|
||||||
|
|
||||||
if initSkin then
|
if initSkin then
|
||||||
minetest.register_on_joinplayer(
|
core.register_on_joinplayer(
|
||||||
function(player)
|
function(player)
|
||||||
minetest.after(1, initSkin, player)
|
core.after(1, initSkin, player)
|
||||||
end);
|
end);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not changeSkin then
|
if not changeSkin then
|
||||||
error("No wardrobe skin change method registered. Check skinMethods.lua.");
|
error("No wardrobe skin change method registered. Check skinMethods.lua.");
|
||||||
end;
|
end;
|
||||||
if not updateSkin then
|
if not updateSkin then
|
||||||
error("No wardrobe skin update method registered. Check skinMethods.lua.");
|
error("No wardrobe skin update method registered. Check skinMethods.lua.");
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
4
mods/player/visuals/wardrobe/mod.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name = wardrobe
|
||||||
|
description = A wardrobe that can be used to register & set new skins for players.
|
||||||
|
version = 1.2
|
||||||
|
depends = default, player_api, wool
|
Before Width: | Height: | Size: 107 KiB |
5
mods/player/visuals/wardrobe/settings.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
--- Number of skins shown per page.
|
||||||
|
--
|
||||||
|
-- default: 8
|
||||||
|
wardrobe.skins_per_page = tonumber(core.settings:get("wardrobe.skins_per_page")) or 8
|
5
mods/player/visuals/wardrobe/settingtypes.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
## Number of skins shown per page.
|
||||||
|
#
|
||||||
|
# default: 8
|
||||||
|
wardrobe.skins_per_page (Skins per page) int 8
|
@ -12,92 +12,92 @@ local SKIN_CHANGE_METHOD = '3d_armor';
|
|||||||
|
|
||||||
local playerMesh = "character.b3d";
|
local playerMesh = "character.b3d";
|
||||||
do -- autodetect version of player mesh used by default
|
do -- autodetect version of player mesh used by default
|
||||||
if default and default.registered_player_models then
|
if default and default.registered_player_models then
|
||||||
local haveCharName = false; -- 'character.*' has priority
|
local haveCharName = false; -- 'character.*' has priority
|
||||||
local name = nil;
|
local name = nil;
|
||||||
local nNames = 0;
|
local nNames = 0;
|
||||||
|
|
||||||
for k in pairs(default.registered_player_models) do
|
for k in pairs(default.registered_player_models) do
|
||||||
if string.find(k, "^character\\.[^\\.]+$") then
|
if string.find(k, "^character\\.[^\\.]+$") then
|
||||||
if haveCharName then nNames = 2; break; end;
|
if haveCharName then nNames = 2; break; end;
|
||||||
name = k;
|
name = k;
|
||||||
nNames = 1;
|
nNames = 1;
|
||||||
haveCharName = true;
|
haveCharName = true;
|
||||||
elseif not haveCharName then
|
elseif not haveCharName then
|
||||||
name = k;
|
name = k;
|
||||||
nNames = nNames + 1;
|
nNames = nNames + 1;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if nNames == 1 then playerMesh = name; end;
|
if nNames == 1 then playerMesh = name; end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
local function changeWardrobeSkin(playerName, skin)
|
local function changeWardrobeSkin(playerName, skin)
|
||||||
local player = minetest.get_player_by_name(playerName);
|
local player = core.get_player_by_name(playerName);
|
||||||
if not player then
|
if not player then
|
||||||
error("unknown player '"..playerName.."'");
|
error("unknown player '"..playerName.."'");
|
||||||
end;
|
end;
|
||||||
if skin and not wardrobe.skinNames[skin] then
|
if skin and not wardrobe.skinNames[skin] then
|
||||||
error("unknown skin '"..skin.."'");
|
error("unknown skin '"..skin.."'");
|
||||||
end;
|
end;
|
||||||
|
|
||||||
wardrobe.playerSkins[playerName] = skin;
|
wardrobe.playerSkins[playerName] = skin;
|
||||||
wardrobe.storage.savePlayerSkins();
|
wardrobe.savePlayerSkins();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
local function defaultUpdateSkin(player)
|
local function defaultUpdateSkin(player)
|
||||||
local playerName = player:get_player_name();
|
local playerName = player:get_player_name();
|
||||||
if not playerName or playerName == "" then return; end;
|
if not playerName or playerName == "" then return; end;
|
||||||
|
|
||||||
local skin = wardrobe.playerSkins[playerName];
|
local skin = wardrobe.playerSkins[playerName];
|
||||||
if not skin or not wardrobe.skinNames[skin] then return; end;
|
if not skin or not wardrobe.skinNames[skin] then return; end;
|
||||||
|
|
||||||
player:set_properties(
|
player:set_properties(
|
||||||
{
|
{
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
visual_size = { x = 1, y = 1 },
|
visual_size = { x = 1, y = 1 },
|
||||||
mesh = playerMesh,
|
mesh = playerMesh,
|
||||||
textures = { skin }
|
textures = { skin }
|
||||||
});
|
});
|
||||||
end;
|
end;
|
||||||
|
|
||||||
--- Method for updating the player skin, IF the dependent mod is enabled.
|
--- Method for updating the player skin, IF the dependent mod is enabled.
|
||||||
local SKIN_CHANGE_METHODS =
|
local SKIN_CHANGE_METHODS =
|
||||||
{
|
{
|
||||||
default =
|
default =
|
||||||
{
|
{
|
||||||
required_mods = {},
|
required_mods = {},
|
||||||
|
|
||||||
initSkin = defaultUpdateSkin,
|
initSkin = defaultUpdateSkin,
|
||||||
|
|
||||||
changeSkin = changeWardrobeSkin,
|
changeSkin = changeWardrobeSkin,
|
||||||
|
|
||||||
updateSkin = defaultUpdateSkin
|
updateSkin = defaultUpdateSkin
|
||||||
},
|
},
|
||||||
|
|
||||||
["3d_armor"] =
|
["3d_armor"] =
|
||||||
{
|
{
|
||||||
required_mods = { '3d_armor' },
|
required_mods = { '3d_armor' },
|
||||||
|
|
||||||
initSkin = nil,
|
initSkin = nil,
|
||||||
|
|
||||||
changeSkin = function(playerName, skin)
|
changeSkin = function(playerName, skin)
|
||||||
changeWardrobeSkin(playerName, skin);
|
changeWardrobeSkin(playerName, skin);
|
||||||
armor.textures[playerName].skin = skin;
|
armor.textures[playerName].skin = skin;
|
||||||
end,
|
end,
|
||||||
|
|
||||||
updateSkin = function(player)
|
updateSkin = function(player)
|
||||||
armor:update_player_visuals(player);
|
armor:update_player_visuals(player);
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
local methods = SKIN_CHANGE_METHODS[SKIN_CHANGE_METHOD];
|
local methods = SKIN_CHANGE_METHODS[SKIN_CHANGE_METHOD];
|
||||||
if methods then
|
if methods then
|
||||||
for _, mod in ipairs(methods.required_mods) do
|
for _, mod in ipairs(methods.required_mods) do
|
||||||
if not minetest.get_modpath(mod) then methods = nil; break; end;
|
if not core.get_modpath(mod) then methods = nil; break; end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if not methods then methods = SKIN_CHANGE_METHODS.default; end;
|
if not methods then methods = SKIN_CHANGE_METHODS.default; end;
|
||||||
|
|
||||||
|
@ -1,43 +1 @@
|
|||||||
skin_character.png: Default Skin
|
character.png: Default Skin
|
||||||
Ashley_by_loupicate.png: Ashley
|
|
||||||
BlueZ_Sam_II_by_philipbenr.png: BlueZ Sam II
|
|
||||||
CaligoPL_by_CaligoPL.png: CaligoPL
|
|
||||||
Charizard_by_Ferdi_Napoli.png: Charizard
|
|
||||||
Charlotte_by_Sporax.png: Charlotte
|
|
||||||
Chloé_by_nelly.png: Chloé (by nelly)
|
|
||||||
Chloé_by_Sporax.png: Chloé (by Sporax)
|
|
||||||
Chop_by_Ferdi_Napoli.png: Chop
|
|
||||||
Coralie_by_loupicate.png: Coralie
|
|
||||||
Devil_by_viv100.png: Devil
|
|
||||||
Emma_by_Cidney7760.png: Emma
|
|
||||||
Female_angel_by_loupicate.png: Angel (female)
|
|
||||||
Finn_The_Adventured_by_Ferdi_Napoli.png: Finn
|
|
||||||
Fiona_by_loupicate.png: Fiona
|
|
||||||
Fire_Mario_by_Ferdi_Napoli.png: Fire Mario
|
|
||||||
Grégoire_by_Sporax.png: Grégoire
|
|
||||||
Hobo_by_Minetestian.png: Hobo
|
|
||||||
Infantry_man_by_philipbenr.png: Infantry Man
|
|
||||||
Iris_by_loupicate.png: Iris
|
|
||||||
Iron_Man_MK._7_by_Jordach.png: Iron Man
|
|
||||||
Jake_by_Ferdi_Napoli.png: Jake
|
|
||||||
Joker_by_Ferdi_Napoli.png: Joker
|
|
||||||
Julia_by_nelly.png: Julia
|
|
||||||
Ladyvioletkitty_by_lordphoenixmh.png: LadyVioletKitty
|
|
||||||
Link_by_tux_peng.png: Link
|
|
||||||
lisa_by_hansuke123.png: Lisa
|
|
||||||
Male_angel_by_loupicate.png: Angel (male)
|
|
||||||
Morgane_by_loupicate.png: Morgane
|
|
||||||
Naruto_by_LuxAtheris.png: Naruto
|
|
||||||
NERD_by_DJOZZY.png: NERD
|
|
||||||
Older_Man_Sam_by_philipbenr.png: Sam (older man)
|
|
||||||
philipbenr_by_philipbenr.png: PhilipBenR
|
|
||||||
skin_minecraft_repris_by_Sporax.png: Minecraft Repris
|
|
||||||
Space_Sam_by_philipbenr.png: Sam (space)
|
|
||||||
Summer_by_lizzie.png: Summer
|
|
||||||
SuperSam_by_AMMOnym.png: Sam (super)
|
|
||||||
villiantest_III_by_marshrover.png: VillianTest
|
|
||||||
War_Machine_by_Ferdi_Napoli.png: War Machine
|
|
||||||
Witch_by_loupicate.png: Witch
|
|
||||||
Zenohelds_by_sdzen.png: Zenohelds
|
|
||||||
|
|
||||||
tessas_skin.png: Tessa
|
|
||||||
|
@ -1,74 +1,67 @@
|
|||||||
wardrobe = wardrobe or {};
|
|
||||||
wardrobe.storage = wardrobe.storage or {};
|
|
||||||
|
|
||||||
|
wardrobe.skins = {}
|
||||||
local MOD_NAME = minetest.get_current_modname();
|
wardrobe.skinNames = {}
|
||||||
local MOD_PATH = minetest.get_modpath(MOD_NAME);
|
|
||||||
local WORLD_PATH = minetest.get_worldpath();
|
|
||||||
|
|
||||||
local SKIN_FILES = { MOD_PATH.."/skins.txt", WORLD_PATH.."/skins.txt" };
|
|
||||||
local PLAYER_SKIN_DB = WORLD_PATH.."/playerSkins.txt";
|
|
||||||
|
|
||||||
|
|
||||||
local function removePrefix(str, prefix)
|
local function removePrefix(str, prefix)
|
||||||
local n = #prefix;
|
local n = #prefix;
|
||||||
if #str >= n and string.sub(str, 1, n) == prefix then
|
if #str >= n and string.sub(str, 1, n) == prefix then
|
||||||
return string.sub(str, n+1);
|
return string.sub(str, n+1);
|
||||||
else
|
else
|
||||||
return str;
|
return str;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function removeSuffix(str, suffix)
|
local function removeSuffix(str, suffix)
|
||||||
local n = #suffix;
|
local n = #suffix;
|
||||||
if #str >= n and string.sub(str, -n, -1) == suffix then
|
if #str >= n and string.sub(str, -n, -1) == suffix then
|
||||||
return string.sub(str, 1, -(n+1));
|
return string.sub(str, 1, -(n+1));
|
||||||
else
|
else
|
||||||
return str;
|
return str;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function trimTail(str)
|
local function trimTail(str)
|
||||||
local e = string.find(str, "%s+$");
|
local e = string.find(str, "%s+$");
|
||||||
return (e and string.sub(str, e-1)) or str;
|
return (e and string.sub(str, e-1)) or str;
|
||||||
end
|
end
|
||||||
|
|
||||||
local function parsePlayerSkinLine(line)
|
local function parsePlayerSkinLine(line)
|
||||||
local k, v;
|
local k, v;
|
||||||
local p = string.find(line, "%S");
|
local p = string.find(line, "%S");
|
||||||
if p and not string.find(line, "^%-%-", p) then
|
if p and not string.find(line, "^%-%-", p) then
|
||||||
local ss, se = string.find(line, "%s*:%s*", p);
|
local ss, se = string.find(line, "%s*:%s*", p);
|
||||||
if ss then
|
if ss then
|
||||||
k = string.sub(line, p, ss-1);
|
k = string.sub(line, p, ss-1);
|
||||||
v = trimTail(string.sub(line, se+1));
|
v = trimTail(string.sub(line, se+1));
|
||||||
if k == "" then k = nil; end
|
if k == "" then k = nil; end
|
||||||
if v == "" then v = nil; end
|
if v == "" then v = nil; end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return k, v;
|
return k, v;
|
||||||
end
|
end
|
||||||
|
|
||||||
local function parseSkinLine(line)
|
local function parseSkinLine(line)
|
||||||
local k, v, n, e;
|
local k, v, n, e;
|
||||||
|
|
||||||
local p = string.find(line, "%S");
|
local p = string.find(line, "%S");
|
||||||
if p then
|
if p then
|
||||||
n, e = string.find(line, "^%-%-?", p);
|
n, e = string.find(line, "^%-%-?", p);
|
||||||
if not n or n == e then
|
if not n or n == e then
|
||||||
if n then p = n+1; end
|
if n then p = n+1; end
|
||||||
local ss, se = string.find(line, "%s*:%s*", p);
|
local ss, se = string.find(line, "%s*:%s*", p);
|
||||||
if ss then
|
if ss then
|
||||||
k = string.sub(line, p, ss-1);
|
k = string.sub(line, p, ss-1);
|
||||||
v = trimTail(string.sub(line, se+1));
|
v = trimTail(string.sub(line, se+1));
|
||||||
if v == "" then v = nil; end
|
if v == "" then v = nil; end
|
||||||
else
|
else
|
||||||
k = trimTail(string.sub(line, p));
|
k = trimTail(string.sub(line, p));
|
||||||
end
|
end
|
||||||
if k == "" then k = nil; end
|
if k == "" then k = nil; end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return k, v, n;
|
return k, v, n;
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Parses the files with the given paths for key/value pairs. Once a key is
|
--- Parses the files with the given paths for key/value pairs. Once a key is
|
||||||
@ -81,104 +74,175 @@ end
|
|||||||
-- values.
|
-- values.
|
||||||
--
|
--
|
||||||
local function loadSkinsFromFiles(filePaths)
|
local function loadSkinsFromFiles(filePaths)
|
||||||
local normKeys, negKeys, values = {}, {}, {}
|
local normKeys, values, negKeys = {}, {}, {}
|
||||||
|
|
||||||
for _, filePath in ipairs(filePaths) do
|
for _, filePath in ipairs(filePaths) do
|
||||||
local file = io.open(filePath, "r");
|
local file = io.open(filePath, "r");
|
||||||
if file then
|
if file then
|
||||||
for line in file:lines() do
|
for line in file:lines() do
|
||||||
local k, v, n = parseSkinLine(line)
|
local k, v, n = parseSkinLine(line)
|
||||||
if k then
|
|
||||||
if n then
|
|
||||||
normKeys[k] = nil;
|
|
||||||
values[k] = nil;
|
|
||||||
negKeys[k] = k;
|
|
||||||
elseif not negKeys[k] then
|
|
||||||
normKeys[k] = k;
|
|
||||||
if v then
|
|
||||||
values[k] = v;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
file:close()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local keyList = {};
|
if k then
|
||||||
for k in pairs(normKeys) do
|
if n then
|
||||||
table.insert(keyList, k);
|
normKeys[k] = nil;
|
||||||
end
|
values[k] = nil;
|
||||||
|
negKeys[k] = k;
|
||||||
|
elseif not negKeys[k] then
|
||||||
|
normKeys[k] = k;
|
||||||
|
if v then
|
||||||
|
values[k] = v;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
file:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return keyList, values;
|
local keyList = {};
|
||||||
|
for k in pairs(normKeys) do
|
||||||
|
table.insert(keyList, k);
|
||||||
|
end
|
||||||
|
|
||||||
|
return keyList, values;
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Organizes outfit names alphabetically.
|
||||||
|
--
|
||||||
|
-- @function wardrobe.sortNames
|
||||||
|
function wardrobe.sortNames()
|
||||||
|
table.sort(wardrobe.skins, function(sL, sR)
|
||||||
|
return wardrobe.skinNames[sL] < wardrobe.skinNames[sR];
|
||||||
|
end);
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Registers a single skin.
|
||||||
|
--
|
||||||
|
-- Does not sort automatically.
|
||||||
|
--
|
||||||
|
-- @function wardrobe.registerSkin
|
||||||
|
-- @param k Texture file name
|
||||||
|
-- @param v Name to display in wardrobe
|
||||||
|
function wardrobe.registerSkin(k, v)
|
||||||
|
table.insert(wardrobe.skins, k)
|
||||||
|
wardrobe.skinNames[k] = v
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Loads skin names from skin files, storing the result in wardrobe.skins and
|
--- Loads skin names from skin files, storing the result in wardrobe.skins and
|
||||||
-- wardrobe.skinNames.
|
-- wardrobe.skinNames.
|
||||||
--
|
--
|
||||||
function wardrobe.storage.loadSkins()
|
-- Overwrites any previously registered skins.
|
||||||
local skins, skinNames = loadSkinsFromFiles(SKIN_FILES);
|
function wardrobe.loadSkins(skin_files)
|
||||||
|
skin_files = skin_files or wardrobe.skin_files
|
||||||
|
|
||||||
for i, skin in ipairs(skins) do
|
local skins, skinNames = loadSkinsFromFiles(skin_files);
|
||||||
local name = skinNames[skin];
|
|
||||||
|
|
||||||
if not name then
|
for i, skin in ipairs(skins) do
|
||||||
local s, e;
|
local name = skinNames[skin];
|
||||||
|
|
||||||
name = removeSuffix(
|
if not name then
|
||||||
removePrefix(
|
local s, e;
|
||||||
removePrefix(skin, MOD_NAME.."_"),
|
|
||||||
"skin_"),
|
|
||||||
".png");
|
|
||||||
|
|
||||||
if name == "" then
|
name = removeSuffix(
|
||||||
name = skin;
|
removePrefix(
|
||||||
else
|
removePrefix(skin, wardrobe.name.."_"),
|
||||||
name = string.gsub(name, "_", " ");
|
"skin_"),
|
||||||
end
|
".png");
|
||||||
end
|
|
||||||
|
|
||||||
skinNames[skin] = name;
|
if name == "" then
|
||||||
end
|
name = skin;
|
||||||
|
else
|
||||||
|
name = string.gsub(name, "_", " ");
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
table.sort(skins,
|
skinNames[skin] = name;
|
||||||
function(sL, sR)
|
end
|
||||||
return skinNames[sL] < skinNames[sR];
|
|
||||||
end);
|
|
||||||
|
|
||||||
wardrobe.skins = skins;
|
-- overwrite registered skins
|
||||||
wardrobe.skinNames = skinNames;
|
wardrobe.skins = skins;
|
||||||
|
wardrobe.skinNames = skinNames;
|
||||||
|
|
||||||
|
wardrobe.sortNames()
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Loads additional skins from a file.
|
||||||
|
--
|
||||||
|
-- @function wardrobe.registerSkinFiles
|
||||||
|
-- @param skin_files
|
||||||
|
function wardrobe.registerSkinFiles(skin_files)
|
||||||
|
if type(skin_files) == "string" then
|
||||||
|
skin_files = {skin_files,}
|
||||||
|
end
|
||||||
|
|
||||||
|
local skins, skinNames = loadSkinsFromFiles(skin_files);
|
||||||
|
|
||||||
|
for i, skin in ipairs(skins) do
|
||||||
|
local name = skinNames[skin];
|
||||||
|
|
||||||
|
if not name then
|
||||||
|
local s, e;
|
||||||
|
|
||||||
|
name = removeSuffix(
|
||||||
|
removePrefix(
|
||||||
|
removePrefix(skin, wardrobe.name.."_"),
|
||||||
|
"skin_"),
|
||||||
|
".png");
|
||||||
|
|
||||||
|
if name == "" then
|
||||||
|
name = skin;
|
||||||
|
else
|
||||||
|
name = string.gsub(name, "_", " ");
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
skinNames[skin] = name;
|
||||||
|
end
|
||||||
|
|
||||||
|
-- add to registered skins
|
||||||
|
for _, sk in ipairs(skins) do
|
||||||
|
--[[
|
||||||
|
table.insert(wardrobe.skins, sk)
|
||||||
|
wardrobe.skinNames[sk] = skinNames[sk]
|
||||||
|
]]
|
||||||
|
wardrobe.registerSkin(sk, skinNames[sk])
|
||||||
|
end
|
||||||
|
|
||||||
|
wardrobe.sortNames()
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Parses the player skins database file and stores the result in
|
--- Parses the player skins database file and stores the result in
|
||||||
-- wardrobe.playerSkins.
|
-- wardrobe.playerSkins.
|
||||||
--
|
--
|
||||||
function wardrobe.storage.loadPlayerSkins()
|
function wardrobe.loadPlayerSkins(player_skin_db)
|
||||||
local playerSkins = {};
|
player_skin_db = player_skin_db or wardrobe.player_skin_db
|
||||||
|
local playerSkins = {};
|
||||||
|
|
||||||
local file = io.open(PLAYER_SKIN_DB, "r");
|
local file = io.open(player_skin_db, "r");
|
||||||
if file then
|
if file then
|
||||||
for line in file:lines() do
|
for line in file:lines() do
|
||||||
local name, skin = parsePlayerSkinLine(line);
|
local name, skin = parsePlayerSkinLine(line);
|
||||||
if name then
|
if name then
|
||||||
playerSkins[name] = skin;
|
playerSkins[name] = skin;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
file:close();
|
file:close();
|
||||||
end
|
end
|
||||||
|
|
||||||
wardrobe.playerSkins = playerSkins;
|
wardrobe.playerSkins = playerSkins;
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Writes wardrobe.playerSkins to the player skins database file.
|
--- Writes wardrobe.playerSkins to the player skins database file.
|
||||||
--
|
--
|
||||||
function wardrobe.storage.savePlayerSkins()
|
function wardrobe.savePlayerSkins(player_skin_db)
|
||||||
local file = io.open(PLAYER_SKIN_DB, "w");
|
player_skin_db = player_skin_db or wardrobe.player_skin_db
|
||||||
if not file then error("Couldn't write file '"..filePath.."'"); end
|
|
||||||
|
|
||||||
for name, skin in pairs(wardrobe.playerSkins) do
|
local file = io.open(player_skin_db, "w");
|
||||||
file:write(name, ":", skin, "\n");
|
if not file then error("Couldn't write file '"..filePath.."'"); end
|
||||||
end
|
|
||||||
|
|
||||||
file:close();
|
for name, skin in pairs(wardrobe.playerSkins) do
|
||||||
|
file:write(name, ":", skin, "\n");
|
||||||
|
end
|
||||||
|
|
||||||
|
file:close();
|
||||||
end
|
end
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
[Ashley_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=885): CC BY-SA
|
|
||||||
[BlueZ_Sam_II_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=143): CC BY-SA
|
|
||||||
[CaligoPL_by_CaligoPL.png](http://minetest.fensta.bplaced.net/#id=99): CC BY-SA
|
|
||||||
[Charizard_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=172): CC BY-NC-SA
|
|
||||||
[Charlotte_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=852): CC BY-SA
|
|
||||||
[Chloé_by_nelly.png](http://minetest.fensta.bplaced.net/#id=847): CC BY-SA
|
|
||||||
[Chloé_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=851): CC BY-SA
|
|
||||||
[Chop_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=164): CC BY-NC-SA
|
|
||||||
[Coralie_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=894): CC BY-SA
|
|
||||||
[Devil_by_viv100.png](http://minetest.fensta.bplaced.net/#id=93): CC BY-SA
|
|
||||||
[Emma_by_Cidney7760.png](http://minetest.fensta.bplaced.net/#id=101): CC BY-SA
|
|
||||||
[Female_angel_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=890): CC BY-SA
|
|
||||||
[Finn_The_Adventured_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=175): CC BY-NC-SA
|
|
||||||
[Fiona_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=860): CC BY-SA
|
|
||||||
[Fire_Mario_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=198): CC BY-NC-SA
|
|
||||||
[Grégoire_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=850): CC BY-SA
|
|
||||||
[Hobo_by_Minetestian.png](http://minetest.fensta.bplaced.net/#id=112): CC BY-SA
|
|
||||||
[Infantry_man_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=82): CC BY-SA
|
|
||||||
[Iris_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=862): CC BY-SA
|
|
||||||
[Iron_Man_MK._7_by_Jordach.png](http://minetest.fensta.bplaced.net/#id=6): CC BY-NC-SA
|
|
||||||
[Jake_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=176): CC BY-NC-SA
|
|
||||||
[Joker_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=178): CC BY-NC-SA
|
|
||||||
[Julia_by_nelly.png](http://minetest.fensta.bplaced.net/#id=859): CC BY-SA
|
|
||||||
[Ladyvioletkitty_by_lordphoenixmh.png](http://minetest.fensta.bplaced.net/#id=162): CC BY
|
|
||||||
[Link_by_tux_peng.png](http://minetest.fensta.bplaced.net/#id=126): CC BY-NC-SA
|
|
||||||
[lisa_by_hansuke123.png](http://minetest.fensta.bplaced.net/#id=88): CC BY-SA
|
|
||||||
[Male_angel_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=895): CC BY-SA
|
|
||||||
[Morgane_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=864): CC BY-SA
|
|
||||||
[Naruto_by_LuxAtheris.png](http://minetest.fensta.bplaced.net/#id=136): CC BY-SA
|
|
||||||
[NERD_by_DJOZZY.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
|
||||||
[Older_Man_Sam_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=21): CC BY-SA
|
|
||||||
[philipbenr_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=54): CC BY-SA
|
|
||||||
[skin_minecraft_repris_by_Sporax.png](http://minetest.fensta.bplaced.net/#id=856): CC BY-SA
|
|
||||||
[Space_Sam_by_philipbenr.png](http://minetest.fensta.bplaced.net/#id=37): CC BY-SA
|
|
||||||
[Summer_by_lizzie.png](http://minetest.fensta.bplaced.net/#id=): CC BY-NC-SA
|
|
||||||
[SuperSam_by_AMMOnym.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
|
||||||
[villiantest_III_by_marshrover.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
|
||||||
[War_Machine_by_Ferdi_Napoli.png](http://minetest.fensta.bplaced.net/#id=169): CC BY-NC-SA
|
|
||||||
[Witch_by_loupicate.png](http://minetest.fensta.bplaced.net/#id=884): CC BY-SA
|
|
||||||
[Zenohelds_by_sdzen.png](http://minetest.fensta.bplaced.net/#id=): CC BY-SA
|
|
@ -1,88 +1,87 @@
|
|||||||
local FORM_NAME = "wardrobe_wardrobeSkinForm";
|
local FORM_NAME = "wardrobe_wardrobeSkinForm";
|
||||||
local SKINS_PER_PAGE = 8;
|
|
||||||
|
|
||||||
|
|
||||||
local function showForm(player, page)
|
local function showForm(player, page)
|
||||||
local playerName = player:get_player_name();
|
local playerName = player:get_player_name();
|
||||||
if not playerName or playerName == "" then return; end
|
if not playerName or playerName == "" then return; end
|
||||||
|
|
||||||
local n = #wardrobe.skins;
|
local n = #wardrobe.skins;
|
||||||
if n <= 0 then return; end
|
if n <= 0 then return; end
|
||||||
local nPages = math.ceil(n/SKINS_PER_PAGE);
|
local nPages = math.ceil(n/wardrobe.skins_per_page);
|
||||||
|
|
||||||
if not page or page > nPages then page = 1; end
|
if not page or page > nPages then page = 1; end
|
||||||
local s = 1 + SKINS_PER_PAGE*(page-1);
|
local s = 1 + wardrobe.skins_per_page*(page-1);
|
||||||
local e = math.min(s+SKINS_PER_PAGE-1, n);
|
local e = math.min(s+wardrobe.skins_per_page-1, n);
|
||||||
|
|
||||||
local fs = "size[5,10]";
|
local fs = "size[5,10]";
|
||||||
fs = fs.."label[0,0;Change Into:]";
|
fs = fs.."label[0,0;Change Into:]";
|
||||||
for i = s, e do
|
for i = s, e do
|
||||||
local slot = i-s+1;
|
local slot = i-s+1;
|
||||||
local skin = wardrobe.skins[i];
|
local skin = wardrobe.skins[i];
|
||||||
local skinName = minetest.formspec_escape(wardrobe.skinNames[skin]);
|
local skinName = core.formspec_escape(wardrobe.skinNames[skin]);
|
||||||
fs = fs.."button_exit[0,"..slot..";5,1;s:"..skin..";"..skinName.."]";
|
fs = fs.."button_exit[0,"..slot..";5,1;s:"..skin..";"..skinName.."]";
|
||||||
end
|
end
|
||||||
fs = fs.."label[2,9;Page "..page.."/"..nPages.."]";
|
fs = fs.."label[2,9;Page "..page.."/"..nPages.."]";
|
||||||
if page > 1 then
|
if page > 1 then
|
||||||
fs = fs.."button_exit[0,9;1,1;n:p"..(page-1)..";prev]";
|
fs = fs.."button_exit[0,9;1,1;n:p"..(page-1)..";prev]";
|
||||||
end
|
end
|
||||||
if page < nPages then
|
if page < nPages then
|
||||||
fs = fs.."button_exit[4,9;1,1;n:p"..(page+1)..";next]";
|
fs = fs.."button_exit[4,9;1,1;n:p"..(page+1)..";next]";
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.show_formspec(playerName, FORM_NAME, fs);
|
core.show_formspec(playerName, FORM_NAME, fs);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(
|
core.register_on_player_receive_fields(
|
||||||
function(player, formName, fields)
|
function(player, formName, fields)
|
||||||
if formName ~= FORM_NAME then return; end
|
if formName ~= FORM_NAME then return; end
|
||||||
|
|
||||||
local playerName = player:get_player_name();
|
local playerName = player:get_player_name();
|
||||||
if not playerName or playerName == "" then return; end
|
if not playerName or playerName == "" then return; end
|
||||||
|
|
||||||
for fieldName in pairs(fields) do
|
for fieldName in pairs(fields) do
|
||||||
if #fieldName > 2 then
|
if #fieldName > 2 then
|
||||||
local action = string.sub(fieldName, 1, 1);
|
local action = string.sub(fieldName, 1, 1);
|
||||||
local value = string.sub(fieldName, 3);
|
local value = string.sub(fieldName, 3);
|
||||||
|
|
||||||
if action == "n" then
|
if action == "n" then
|
||||||
showForm(player, tonumber(string.sub(value, 2)));
|
showForm(player, tonumber(string.sub(value, 2)));
|
||||||
return;
|
return;
|
||||||
elseif action == "s" then
|
elseif action == "s" then
|
||||||
wardrobe.changePlayerSkin(playerName, value);
|
wardrobe.changePlayerSkin(playerName, value);
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end);
|
end);
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node(
|
core.register_node(
|
||||||
"wardrobe:wardrobe",
|
"wardrobe:wardrobe",
|
||||||
{
|
{
|
||||||
description = "Wardrobe",
|
description = "Wardrobe",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
tiles = {
|
tiles = {
|
||||||
"wardrobe_wardrobe_topbottom.png",
|
"wardrobe_wardrobe_topbottom.png",
|
||||||
"wardrobe_wardrobe_topbottom.png",
|
"wardrobe_wardrobe_topbottom.png",
|
||||||
"wardrobe_wardrobe_sides.png",
|
"wardrobe_wardrobe_sides.png",
|
||||||
"wardrobe_wardrobe_sides.png",
|
"wardrobe_wardrobe_sides.png",
|
||||||
"wardrobe_wardrobe_sides.png",
|
"wardrobe_wardrobe_sides.png",
|
||||||
"wardrobe_wardrobe_front.png"
|
"wardrobe_wardrobe_front.png"
|
||||||
},
|
},
|
||||||
inventory_image = "wardrobe_wardrobe_front.png",
|
inventory_image = "wardrobe_wardrobe_front.png",
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
groups = { choppy = 3, oddly_breakable_by_hand = 2, flammable = 3 },
|
groups = { choppy = 3, oddly_breakable_by_hand = 2, flammable = 3 },
|
||||||
on_rightclick = function(pos, node, player, itemstack, pointedThing)
|
on_rightclick = function(pos, node, player, itemstack, pointedThing)
|
||||||
showForm(player, 1);
|
showForm(player, 1);
|
||||||
end
|
end
|
||||||
});
|
});
|
||||||
|
|
||||||
minetest.register_craft(
|
core.register_craft(
|
||||||
{
|
{
|
||||||
output = "wardrobe:wardrobe",
|
output = "wardrobe:wardrobe",
|
||||||
recipe = { { "group:wood", "group:stick", "group:wood" },
|
recipe = { { "group:wood", "group:stick", "group:wood" },
|
||||||
{ "group:wood", "group:wool", "group:wood" },
|
{ "group:wood", "group:wool", "group:wood" },
|
||||||
{ "group:wood", "group:wool", "group:wood" } }
|
{ "group:wood", "group:wool", "group:wood" } }
|
||||||
});
|
});
|
||||||
|
@ -607,6 +607,14 @@ spawneggs.enable_node_spawn (Enable node spawn) bool true
|
|||||||
trampoline.damage_absorb (Trampoline damage absorption) int 100 0 100
|
trampoline.damage_absorb (Trampoline damage absorption) int 100 0 100
|
||||||
|
|
||||||
|
|
||||||
|
[*wardrobe]
|
||||||
|
|
||||||
|
## Number of skins shown per page.
|
||||||
|
#
|
||||||
|
# default: 8
|
||||||
|
wardrobe.skins_per_page (Skins per page) int 8
|
||||||
|
|
||||||
|
|
||||||
[*whitelist]
|
[*whitelist]
|
||||||
|
|
||||||
# Enables/Disables whitelist feature.
|
# Enables/Disables whitelist feature.
|
||||||
|