fixes
|
@ -247,6 +247,7 @@ armor.set_player_armor = function(self, player)
|
|||
local prev = def.preview or tex.."_preview"
|
||||
prev = prev:gsub(".png$", "")
|
||||
texture = texture.."^"..tex..".png"
|
||||
--minetest.chat_send_all(texture..", "..tex)
|
||||
preview = preview.."^"..prev..".png"
|
||||
state = state + stack:get_wear()
|
||||
count = count + 1
|
||||
|
@ -500,11 +501,8 @@ armor.get_player_skin = function(self, name)
|
|||
elseif self.skin_mod == "wardrobe" and wardrobe.playerSkins and wardrobe.playerSkins[name] then
|
||||
return wardrobe.playerSkins[name]
|
||||
end
|
||||
if player:get_meta():get_string("gender") == "female" then
|
||||
return "female.png"
|
||||
else
|
||||
return "character.png"
|
||||
end
|
||||
local gender = player:get_meta():get_string("gender")
|
||||
return player_api.registered_models[player_api.get_gender_model(gender)].textures[1]
|
||||
end
|
||||
|
||||
armor.update_skin = function(self, name)
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
## Files related to minetest development cycle
|
||||
/*.patch
|
||||
# GNU Patch reject file
|
||||
*.rej
|
||||
|
||||
## Editors and Development environments
|
||||
*~
|
||||
*.swp
|
||||
*.bak*
|
||||
*.orig
|
||||
# Vim
|
||||
*.vim
|
||||
# Kate
|
||||
.*.kate-swp
|
||||
.swp.*
|
||||
# Eclipse (LDT)
|
||||
.project
|
||||
.settings/
|
||||
.buildpath
|
||||
.metadata
|
||||
# Idea IDE
|
||||
.idea/*
|
||||
|
||||
#misc
|
||||
sync.sh
|
|
@ -0,0 +1,28 @@
|
|||
unused_args = false
|
||||
allow_defined_top = true
|
||||
|
||||
read_globals = {
|
||||
"DIR_DELIM",
|
||||
"minetest",
|
||||
"dump",
|
||||
"vector",
|
||||
"VoxelManip", "VoxelArea",
|
||||
"PseudoRandom", "PcgRandom",
|
||||
"ItemStack",
|
||||
"Settings",
|
||||
"unpack",
|
||||
"armor",
|
||||
-- Silence errors about custom table methods.
|
||||
table = { fields = { "copy", "indexof" } },
|
||||
-- Silence warnings about accessing undefined fields of global 'math'
|
||||
math = { fields = { "sign" } }
|
||||
}
|
||||
|
||||
-- Overwrites minetest.handle_node_drops
|
||||
files["mods/creative/init.lua"].globals = { "minetest" }
|
||||
|
||||
-- Overwrites minetest.calculate_knockback
|
||||
files["mods/player_api/api.lua"].globals = { "minetest" }
|
||||
|
||||
-- Don't report on legacy definitions of globals.
|
||||
files["mods/default/legacy.lua"].global = false
|
|
@ -433,7 +433,7 @@ function doors.register(name, def)
|
|||
def.sunlight_propagates = true
|
||||
def.walkable = true
|
||||
def.is_ground_content = false
|
||||
use_texture_alpha = true
|
||||
def.use_texture_alpha = true
|
||||
def.buildable_to = false
|
||||
def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}}
|
||||
def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}}
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
name = Minetest Game
|
||||
author = Minetest
|
||||
description = A basic exploration, mining, crafting and building sandbox game with no NPCs, monsters or animals. Minetest Game is usually used with mods added and many mods are available for this game. Reliably maintained by Minetest Engine core developers.
|
|
@ -218,17 +218,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
else
|
||||
gender = player_api.set_gender(player, "random")
|
||||
end
|
||||
player_api.set_cloths(player, gender)
|
||||
local cloth = player_api.compose_cloth(player, gender)
|
||||
local gender_model = player_api.get_gender_model(gender)
|
||||
player_api.registered_models[gender_model].textures[1] = cloth
|
||||
player_api.set_model(player, gender_model)
|
||||
if minetest.get_modpath("3d_armor")~=nil then
|
||||
--armor.default_skin = cloth
|
||||
local player_name = player:get_player_name()
|
||||
if gender == "male" then
|
||||
armor.default_skin = "character.png"
|
||||
armor.textures[player_name].skin = "character.png"
|
||||
else
|
||||
armor.default_skin = "female.png"
|
||||
armor.textures[player_name].skin = "female.png"
|
||||
end
|
||||
armor.textures[player_name].skin = cloth
|
||||
player_api.set_textures(player, models[gender_model].textures)
|
||||
end
|
||||
end)
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
local S = minetest.get_translator("player_api")
|
||||
|
||||
function player_api.has_cloths(player)
|
||||
local inv = player:get_inventory()
|
||||
if inv:is_empty("cloths") then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function player_api.register_cloth(name, def)
|
||||
if not(def.inventory_image) then
|
||||
def.wield_image = def.texture
|
||||
end
|
||||
if not(def.wield_image) then
|
||||
def.wield_image = def.inventory_image
|
||||
end
|
||||
minetest.register_craftitem(name, {
|
||||
description = def.description,
|
||||
inventory_image = def.inventory_image,
|
||||
wield_image = def.wield_image,
|
||||
stack_max = def.stack_max or 16,
|
||||
_cloth_texture = def.texture,
|
||||
_cloth_genre = def.genre,
|
||||
groups = def.groups,
|
||||
})
|
||||
end
|
||||
|
||||
player_api.register_cloth("player_api:cloth_female_upper_default", {
|
||||
description = S("Purple Stripe Summer T-shirt"),
|
||||
inventory_image = "cloth_female_upper_default_inv.png",
|
||||
wield_image = "cloth_female_upper_default.png",
|
||||
texture = "cloth_female_upper_default.png",
|
||||
genre = "female",
|
||||
groups = {cloth = 2},
|
||||
})
|
||||
|
||||
player_api.register_cloth("player_api:cloth_female_lower_default", {
|
||||
description = S("Fresh Summer Denim Shorts"),
|
||||
inventory_image = "cloth_female_lower_default_inv.png",
|
||||
wield_image = "cloth_female_lower_default_inv.png",
|
||||
texture = "cloth_female_lower_default.png",
|
||||
genre = "female",
|
||||
groups = {cloth = 3},
|
||||
})
|
||||
|
||||
player_api.register_cloth("player_api:cloth_female_head_default", {
|
||||
description = S("Pink Bow"),
|
||||
inventory_image = "cloth_female_head_default_inv.png",
|
||||
wield_image = "cloth_female_head_default_inv.png",
|
||||
texture = "cloth_female_head_default.png",
|
||||
genre = "female",
|
||||
groups = {cloth = 1},
|
||||
})
|
||||
|
||||
player_api.register_cloth("player_api:cloth_male_upper_default", {
|
||||
description = S("Classic Green Sweater"),
|
||||
inventory_image = "cloth_male_upper_default_inv.png",
|
||||
wield_image = "cloth_male_upper_default_inv.png",
|
||||
texture = "cloth_male_upper_default.png",
|
||||
genre = "male",
|
||||
groups = {cloth = 2},
|
||||
})
|
||||
|
||||
player_api.register_cloth("player_api:cloth_male_lower_default", {
|
||||
description = S("Fine Blue Pants"),
|
||||
inventory_image = "cloth_male_lower_default_inv.png",
|
||||
wield_image = "cloth_male_lower_default_inv.png",
|
||||
texture = "cloth_male_lower_default.png",
|
||||
genre = "male",
|
||||
groups = {cloth = 3},
|
||||
})
|
||||
|
||||
function player_api.set_cloths(player, gender)
|
||||
|
||||
--Create the "cloths" inventory
|
||||
|
||||
local inv = player:get_inventory()
|
||||
inv:set_size("cloths", 3)
|
||||
|
||||
if gender == "male" then
|
||||
inv:add_item("cloths", 'player_api:cloth_male_upper_default')
|
||||
inv:add_item("cloths", 'player_api:cloth_male_lower_default')
|
||||
else
|
||||
inv:add_item("cloths", 'player_api:cloth_female_head_default')
|
||||
inv:add_item("cloths", 'player_api:cloth_female_upper_default')
|
||||
inv:add_item("cloths", 'player_api:cloth_female_lower_default')
|
||||
end
|
||||
end
|
||||
|
||||
function player_api.compose_cloth(player)
|
||||
if not(player_api.has_cloths(player)) then
|
||||
return nil
|
||||
end
|
||||
local gender = player:get_meta():get_string("gender")
|
||||
local inv = player:get_inventory()
|
||||
local inv_list = inv:get_list("cloths")
|
||||
local upper_ItemStack
|
||||
local lower_ItemStack
|
||||
local head_ItemStack
|
||||
for i = 1, #inv_list do
|
||||
local item_name = inv_list[i]:get_name()
|
||||
--minetest.chat_send_all(item_name)
|
||||
local cloth_type = minetest.get_item_group(item_name, "cloth")
|
||||
--if cloth_type then minetest.chat_send_all(cloth_type) end
|
||||
if cloth_type == 1 then
|
||||
head_ItemStack = minetest.registered_items[item_name]._cloth_texture
|
||||
elseif cloth_type == 2 then
|
||||
upper_ItemStack = minetest.registered_items[item_name]._cloth_texture
|
||||
elseif cloth_type == 3 then
|
||||
lower_ItemStack = minetest.registered_items[item_name]._cloth_texture
|
||||
end
|
||||
end
|
||||
local base_texture
|
||||
if gender == "male" then
|
||||
base_texture = "player_male_base.png"
|
||||
else
|
||||
base_texture = "player_female_base.png"
|
||||
end
|
||||
local cloth = "[combine:128x64:0,0="..base_texture
|
||||
if upper_ItemStack then
|
||||
cloth = cloth .. ":32,32="..upper_ItemStack
|
||||
end
|
||||
if lower_ItemStack then
|
||||
cloth = cloth .. ":0,32="..lower_ItemStack
|
||||
end
|
||||
if head_ItemStack then
|
||||
cloth = cloth .. ":48,0="..head_ItemStack
|
||||
end
|
||||
return cloth
|
||||
end
|
|
@ -1,6 +1,7 @@
|
|||
-- player/init.lua
|
||||
|
||||
dofile(minetest.get_modpath("player_api") .. "/api.lua")
|
||||
dofile(minetest.get_modpath("player_api") .. "/cloths.lua")
|
||||
|
||||
-- Default player appearance
|
||||
player_api.register_model("character.b3d", {
|
||||
|
@ -49,6 +50,8 @@ minetest.register_on_joinplayer(function(player)
|
|||
if gender == "" then
|
||||
player_api.select_gender(player_name)
|
||||
else
|
||||
local cloth = player_api.compose_cloth(player)
|
||||
player_api.registered_models[player_api.get_gender_model(gender)].textures[1] = cloth
|
||||
player_api.set_model(player, player_api.get_gender_model(gender))
|
||||
end
|
||||
player:set_local_animation(
|
||||
|
|
|
@ -2,3 +2,8 @@
|
|||
Select your gender=Selecciona tu género
|
||||
Male=Hombre
|
||||
Female=Mujer
|
||||
Purple Stripe Summer T-shirt=Camiseta veraniega púrpura a rayas
|
||||
Fresh Summer Denim Shorts=Pantalones vaqueros cortos y frescos
|
||||
Pink Bow=Lazo rosa
|
||||
Fine Blue Pants=Pantalones azules finos
|
||||
Classic Green Sweater=Jersei verde clásico
|
||||
|
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1020 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 326 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 467 B |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 360 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 504 B |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |