mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-19 01:21:05 +01:00
Move player out of mcl_core into mcl_player
This commit is contained in:
parent
180ea8f60f
commit
0106b1441b
13 changed files with 54 additions and 31 deletions
|
@ -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")
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
mcl_core
|
mcl_core
|
||||||
|
mcl_player
|
||||||
mesecons?
|
mesecons?
|
||||||
|
|
|
@ -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()
|
||||||
|
|
20
mods/mcl_player/README.txt
Normal file
20
mods/mcl_player/README.txt
Normal 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)
|
|
@ -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
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 996 B |
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 681 B |
|
@ -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", {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
mcl_core
|
mcl_core
|
||||||
|
mcl_player
|
||||||
inventory_plus?
|
inventory_plus?
|
||||||
unified_inventory?
|
unified_inventory?
|
||||||
fire?
|
fire?
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue