master
root 2020-11-10 13:45:39 +01:00
parent fde565a3c1
commit 72342462b3
30 changed files with 1289 additions and 13 deletions

View File

@ -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)

25
mods/minetest_game/.gitignore vendored Normal file
View File

@ -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

View File

@ -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

View File

@ -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}}

View File

@ -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.

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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

View File

@ -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(

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB