Move player out of mcl_core into mcl_player

This commit is contained in:
Wuzzy 2017-02-11 18:05:50 +01:00
parent 180ea8f60f
commit 0106b1441b
13 changed files with 54 additions and 31 deletions

View File

@ -20,7 +20,6 @@ dofile(minetest.get_modpath("mcl_core").."/tools.lua")
dofile(minetest.get_modpath("mcl_core").."/craftitems.lua") dofile(minetest.get_modpath("mcl_core").."/craftitems.lua")
dofile(minetest.get_modpath("mcl_core").."/crafting.lua") dofile(minetest.get_modpath("mcl_core").."/crafting.lua")
dofile(minetest.get_modpath("mcl_core").."/mapgen.lua") dofile(minetest.get_modpath("mcl_core").."/mapgen.lua")
dofile(minetest.get_modpath("mcl_core").."/player.lua")
-- Aliases -- Aliases
minetest.register_alias("default:desert_sand", "mcl_core:sand") minetest.register_alias("default:desert_sand", "mcl_core:sand")

View File

@ -1,2 +1,3 @@
mcl_core mcl_core
mcl_player
mesecons? mesecons?

View File

@ -40,7 +40,7 @@ function mcl_minecarts.cart:on_rightclick(clicker)
clicker:set_detach() clicker:set_detach()
elseif not self._driver then elseif not self._driver then
self._driver = player_name self._driver = player_name
mcl_core.player_attached[player_name] = true mcl_player.player_attached[player_name] = true
clicker:set_attach(self.object, "", {x=0, y=3, z=0}, {x=0, y=0, z=0}) clicker:set_attach(self.object, "", {x=0, y=3, z=0}, {x=0, y=0, z=0})
end end
end end
@ -72,7 +72,7 @@ function mcl_minecarts.cart:on_punch(puncher, time_from_last_punch, tool_capabil
if self._old_pos then if self._old_pos then
self.object:setpos(self._old_pos) self.object:setpos(self._old_pos)
end end
mcl_core.player_attached[self._driver] = nil mcl_player.player_attached[self._driver] = nil
local player = minetest.get_player_by_name(self._driver) local player = minetest.get_player_by_name(self._driver)
if player then if player then
player:set_detach() player:set_detach()

View File

@ -0,0 +1,20 @@
MineClone 2 mod: mcl_player
==========================
License of source code:
-----------------------
Copyright (C) 2011-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
http://www.gnu.org/licenses/lgpl-2.1.html
Authors of media files
-----------------------
MirceaKitsune (WTFPL):
character.x
Textures from Faithful 1.11 resource pack (see main readme file)

View File

@ -1,4 +1,4 @@
-- Minetest 0.4 mod: player -- MineClone 2 mod: mcl_player
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
--[[ --[[
@ -6,29 +6,29 @@
API API
--- ---
mcl_core.player_register_model(name, def) mcl_player.player_register_model(name, def)
^ Register a new model to be used by players. ^ Register a new model to be used by players.
^ <name> is the model filename such as "character.x", "foo.b3d", etc. ^ <name> is the model filename such as "character.x", "foo.b3d", etc.
^ See Model Definition below for format of <def>. ^ See Model Definition below for format of <def>.
mcl_core.registered_player_models[name] mcl_player.registered_player_models[name]
^ See Model Definition below for format. ^ See Model Definition below for format.
mcl_core.player_set_model(player, model_name) mcl_player.player_set_model(player, model_name)
^ <player> is a PlayerRef. ^ <player> is a PlayerRef.
^ <model_name> is a model registered with player_register_model. ^ <model_name> is a model registered with player_register_model.
mcl_core.player_set_animation(player, anim_name [, speed]) mcl_player.player_set_animation(player, anim_name [, speed])
^ <player> is a PlayerRef. ^ <player> is a PlayerRef.
^ <anim_name> is the name of the animation. ^ <anim_name> is the name of the animation.
^ <speed> is in frames per second. If nil, default from the model is used ^ <speed> is in frames per second. If nil, default from the model is used
mcl_core.player_set_textures(player, textures) mcl_player.player_set_textures(player, textures)
^ <player> is a PlayerRef. ^ <player> is a PlayerRef.
^ <textures> is an array of textures ^ <textures> is an array of textures
^ If <textures> is nil, the default textures from the model def are used ^ If <textures> is nil, the default textures from the model def are used
mcl_core.player_get_animation(player) mcl_player.player_get_animation(player)
^ <player> is a PlayerRef. ^ <player> is a PlayerRef.
^ Returns a table containing fields "model", "textures" and "animation". ^ Returns a table containing fields "model", "textures" and "animation".
^ Any of the fields of the returned table may be nil. ^ Any of the fields of the returned table may be nil.
@ -50,21 +50,23 @@ model_def = {
]] ]]
mcl_player = {}
-- Player animation blending -- Player animation blending
-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 -- Note: This is currently broken due to a bug in Irrlicht, leave at 0
local animation_blend = 0 local animation_blend = 0
mcl_core.registered_player_models = { } mcl_player.registered_player_models = { }
-- Local for speed. -- Local for speed.
local models = mcl_core.registered_player_models local models = mcl_player.registered_player_models
function mcl_core.player_register_model(name, def) function mcl_player.player_register_model(name, def)
models[name] = def models[name] = def
end end
-- Default player appearance -- Default player appearance
mcl_core.player_register_model("character.x", { mcl_player.player_register_model("character.x", {
animation_speed = 30, animation_speed = 30,
textures = {"character.png", }, textures = {"character.png", },
animations = { animations = {
@ -84,9 +86,9 @@ local player_model = {}
local player_textures = {} local player_textures = {}
local player_anim = {} local player_anim = {}
local player_sneak = {} local player_sneak = {}
mcl_core.player_attached = {} mcl_player.player_attached = {}
function mcl_core.player_get_animation(player) function mcl_player.player_get_animation(player)
local name = player:get_player_name() local name = player:get_player_name()
return { return {
model = player_model[name], model = player_model[name],
@ -96,7 +98,7 @@ function mcl_core.player_get_animation(player)
end end
-- Called when a player's appearance needs to be updated -- Called when a player's appearance needs to be updated
function mcl_core.player_set_model(player, model_name) function mcl_player.player_set_model(player, model_name)
local name = player:get_player_name() local name = player:get_player_name()
local model = models[model_name] local model = models[model_name]
if model then if model then
@ -109,7 +111,7 @@ function mcl_core.player_set_model(player, model_name)
visual = "mesh", visual = "mesh",
visual_size = model.visual_size or {x=1, y=1}, visual_size = model.visual_size or {x=1, y=1},
}) })
mcl_core.player_set_animation(player, "stand") mcl_player.player_set_animation(player, "stand")
else else
player:set_properties({ player:set_properties({
textures = { "player.png", "player_back.png", }, textures = { "player.png", "player_back.png", },
@ -119,13 +121,13 @@ function mcl_core.player_set_model(player, model_name)
player_model[name] = model_name player_model[name] = model_name
end end
function mcl_core.player_set_textures(player, textures) function mcl_player.player_set_textures(player, textures)
local name = player:get_player_name() local name = player:get_player_name()
player_textures[name] = textures player_textures[name] = textures
player:set_properties({textures = textures,}) player:set_properties({textures = textures,})
end end
function mcl_core.player_set_animation(player, anim_name, speed) function mcl_player.player_set_animation(player, anim_name, speed)
local name = player:get_player_name() local name = player:get_player_name()
if player_anim[name] == anim_name then if player_anim[name] == anim_name then
return return
@ -141,8 +143,8 @@ end
-- Update appearance when the player joins -- Update appearance when the player joins
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
mcl_core.player_attached[player:get_player_name()] = false mcl_player.player_attached[player:get_player_name()] = false
mcl_core.player_set_model(player, "character.x") mcl_player.player_set_model(player, "character.x")
-- Minecraft has no sneak glitch -- Minecraft has no sneak glitch
-- sneak is also disabled because it is buggy in Minetest (can be used to negate fall damage) -- sneak is also disabled because it is buggy in Minetest (can be used to negate fall damage)
player:set_physics_override({sneak_glitch=false}) player:set_physics_override({sneak_glitch=false})
@ -159,7 +161,7 @@ minetest.register_on_leaveplayer(function(player)
end) end)
-- Localize for better performance. -- Localize for better performance.
local player_set_animation = mcl_core.player_set_animation local player_set_animation = mcl_player.player_set_animation
-- Check each player and apply animations -- Check each player and apply animations
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function(dtime)
@ -167,7 +169,7 @@ minetest.register_globalstep(function(dtime)
local name = player:get_player_name() local name = player:get_player_name()
local model_name = player_model[name] local model_name = player_model[name]
local model = model_name and models[model_name] local model = model_name and models[model_name]
if model and not mcl_core.player_attached[name] then if model and not mcl_player.player_attached[name] then
local controls = player:get_player_control() local controls = player:get_player_control()
local walking = false local walking = false
local animation_speed_mod = model.animation_speed or 30 local animation_speed_mod = model.animation_speed or 30

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 996 B

After

Width:  |  Height:  |  Size: 996 B

View File

Before

Width:  |  Height:  |  Size: 681 B

After

Width:  |  Height:  |  Size: 681 B

View File

@ -128,7 +128,7 @@ armor.update_player_visuals = function(self, player)
end end
local name = player:get_player_name() local name = player:get_player_name()
if self.textures[name] then if self.textures[name] then
mcl_core.player_set_textures(player, { mcl_player.player_set_textures(player, {
self.textures[name].skin, self.textures[name].skin,
self.textures[name].armor, self.textures[name].armor,
self.textures[name].wielditem, self.textures[name].wielditem,
@ -325,7 +325,7 @@ end
-- Register Player Model -- Register Player Model
mcl_core.player_register_model("3d_armor_character.b3d", { mcl_player.player_register_model("3d_armor_character.b3d", {
animation_speed = 30, animation_speed = 30,
textures = { textures = {
armor.default_skin..".png", armor.default_skin..".png",
@ -366,7 +366,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end) end)
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
mcl_core.player_set_model(player, "3d_armor_character.b3d") mcl_player.player_set_model(player, "3d_armor_character.b3d")
local name = player:get_player_name() local name = player:get_player_name()
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local armor_inv = minetest.create_detached_inventory(name.."_armor", { local armor_inv = minetest.create_detached_inventory(name.."_armor", {

View File

@ -1,4 +1,5 @@
mcl_core mcl_core
mcl_player
inventory_plus? inventory_plus?
unified_inventory? unified_inventory?
fire? fire?

View File

@ -89,14 +89,14 @@ mobs:register_mob("mobs_mc:pig", {
if self.driver and clicker == self.driver then if self.driver and clicker == self.driver then
self.driver = nil self.driver = nil
clicker:set_detach() clicker:set_detach()
mcl_core.player_attached[name] = false mcl_player.player_attached[name] = false
mcl_core.player_set_animation(clicker, "stand" , 30) mcl_player.player_set_animation(clicker, "stand" , 30)
elseif not self.driver and self.saddle == "yes" then elseif not self.driver and self.saddle == "yes" then
self.driver = clicker self.driver = clicker
clicker:set_attach(self.object, "", {x = 0, y = 19, z = 0}, {x = 0, y = 0, z = 0}) clicker:set_attach(self.object, "", {x = 0, y = 19, z = 0}, {x = 0, y = 0, z = 0})
mcl_core.player_attached[name] = true mcl_player.player_attached[name] = true
minetest.after(0.2, function() minetest.after(0.2, function()
mcl_core.player_set_animation(clicker, "sit" , 30) mcl_player.player_set_animation(clicker, "sit" , 30)
end) end)
----[[ ----[[
-- ridable pigs -- ridable pigs