Separate player code into new mod

This commit is contained in:
rubenwardy
2017-07-26 19:38:11 +01:00
committad av paramat
förälder 7ffd176f48
incheckning 5d19fd6923
16 ändrade filer med 122 tillägg och 99 borttagningar

Visa fil

@@ -54,12 +54,6 @@ Calinou (CC BY-SA 3.0):
default_mineral_copper.png
default_glass_detail.png
MirceaKitsune (CC BY-SA 3.0):
character.x
Jordach (CC BY-SA 3.0):
character.png
PilzAdam (CC BY-SA 3.0):
default_jungleleaves.png
default_junglesapling.png
@@ -297,4 +291,3 @@ Chests sounds added by sofar, derived of several files mixed together:
- http://www.freesound.org/people/kingsamas/sounds/135576/ CC-BY-3.0
- http://www.freesound.org/people/bulbastre/sounds/126887/ CC-BY-3.0
- http://www.freesound.org/people/Yoyodaman234/sounds/183541/ CC0

1
mods/default/depends.txt Normal file
Visa fil

@@ -0,0 +1 @@
player_api?

Visa fil

@@ -47,6 +47,5 @@ dofile(default_path.."/item_entity.lua")
dofile(default_path.."/craftitems.lua")
dofile(default_path.."/crafting.lua")
dofile(default_path.."/mapgen.lua")
dofile(default_path.."/player.lua")
dofile(default_path.."/aliases.lua")
dofile(default_path.."/legacy.lua")

Visa fil

@@ -23,3 +23,14 @@ LIGHT_MAX = default.LIGHT_MAX
-- Formspecs
default.gui_suvival_form = default.gui_survival_form
-- Players
if minetest.get_modpath("player_api") then
default.registered_player_models = player_api.registered_models
default.player_register_model = player_api.register_model
default.player_attached = player_api.player_attached
default.player_get_animation = player_api.get_animation
default.player_set_model = player_api.set_model
default.player_set_textures = player_api.set_textures
default.player_set_animation = player_api.set_animation
end

Visa fil

@@ -0,0 +1,20 @@
Minetest Game mod: player_api
============================
See license.txt for license information.
Provides an API to allow multiple mods to set player models and textures.
Also sets the default model, texture, and player flags.
Authors of source code
----------------------
Originally by celeron55, Perttu Ahola <celeron55@gmail.com> (LGPL 2.1)
Various Minetest developers and contributors (LGPL 2.1)
Authors of media (textures, models and sounds)
----------------------------------------------
MirceaKitsune (CC BY-SA 3.0):
character.x
Jordach (CC BY-SA 3.0):
character.png

Visa fil

@@ -1,42 +1,29 @@
-- Minetest 0.4 mod: player
-- See README.txt for licensing and other information.
player_api = {}
-- Player animation blending
-- Note: This is currently broken due to a bug in Irrlicht, leave at 0
local animation_blend = 0
default.registered_player_models = { }
player_api.registered_models = { }
-- Local for speed.
local models = default.registered_player_models
local models = player_api.registered_models
function default.player_register_model(name, def)
function player_api.register_model(name, def)
models[name] = def
end
-- Default player appearance
default.player_register_model("character.b3d", {
animation_speed = 30,
textures = {"character.png", },
animations = {
-- Standard animations.
stand = { x= 0, y= 79, },
lay = { x=162, y=166, },
walk = { x=168, y=187, },
mine = { x=189, y=198, },
walk_mine = { x=200, y=219, },
sit = { x= 81, y=160, },
},
})
-- Player stats and animations
local player_model = {}
local player_textures = {}
local player_anim = {}
local player_sneak = {}
default.player_attached = {}
player_api.player_attached = {}
function default.player_get_animation(player)
function player_api.get_animation(player)
local name = player:get_player_name()
return {
model = player_model[name],
@@ -46,7 +33,7 @@ function default.player_get_animation(player)
end
-- Called when a player's appearance needs to be updated
function default.player_set_model(player, model_name)
function player_api.set_model(player, model_name)
local name = player:get_player_name()
local model = models[model_name]
if model then
@@ -59,7 +46,7 @@ function default.player_set_model(player, model_name)
visual = "mesh",
visual_size = model.visual_size or {x=1, y=1},
})
default.player_set_animation(player, "stand")
player_api.set_animation(player, "stand")
else
player:set_properties({
textures = { "player.png", "player_back.png", },
@@ -69,13 +56,13 @@ function default.player_set_model(player, model_name)
player_model[name] = model_name
end
function default.player_set_textures(player, textures)
function player_api.set_textures(player, textures)
local name = player:get_player_name()
player_textures[name] = textures
player:set_properties({textures = textures,})
end
function default.player_set_animation(player, anim_name, speed)
function player_api.set_animation(player, anim_name, speed)
local name = player:get_player_name()
if player_anim[name] == anim_name then
return
@@ -89,16 +76,6 @@ function default.player_set_animation(player, anim_name, speed)
player:set_animation(anim, speed or model.animation_speed, animation_blend)
end
-- Update appearance when the player joins
minetest.register_on_joinplayer(function(player)
default.player_attached[player:get_player_name()] = false
default.player_set_model(player, "character.b3d")
player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30)
player:hud_set_hotbar_image("gui_hotbar.png")
player:hud_set_hotbar_selected_image("gui_hotbar_selected.png")
end)
minetest.register_on_leaveplayer(function(player)
local name = player:get_player_name()
player_model[name] = nil
@@ -107,8 +84,8 @@ minetest.register_on_leaveplayer(function(player)
end)
-- Localize for better performance.
local player_set_animation = default.player_set_animation
local player_attached = default.player_attached
local player_set_animation = player_api.set_animation
local player_attached = player_api.player_attached
-- Check each player and apply animations
minetest.register_globalstep(function(dtime)

26
mods/player_api/init.lua Normal file
Visa fil

@@ -0,0 +1,26 @@
dofile(minetest.get_modpath("player_api") .. "/api.lua")
-- Default player appearance
player_api.register_model("character.b3d", {
animation_speed = 30,
textures = {"character.png", },
animations = {
-- Standard animations.
stand = { x= 0, y= 79, },
lay = { x=162, y=166, },
walk = { x=168, y=187, },
mine = { x=189, y=198, },
walk_mine = { x=200, y=219, },
sit = { x= 81, y=160, },
},
})
-- Update appearance when the player joins
minetest.register_on_joinplayer(function(player)
player_api.player_attached[player:get_player_name()] = false
player_api.set_model(player, "character.b3d")
player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30)
player:hud_set_hotbar_image("gui_hotbar.png")
player:hud_set_hotbar_selected_image("gui_hotbar_selected.png")
end)

Visa fil

Före

Bredd:  |  Höjd:  |  Storlek: 2.7 KiB

Efter

Bredd:  |  Höjd:  |  Storlek: 2.7 KiB

Visa fil

Före

Bredd:  |  Höjd:  |  Storlek: 284 B

Efter

Bredd:  |  Höjd:  |  Storlek: 284 B

Visa fil

Före

Bredd:  |  Höjd:  |  Storlek: 1.6 KiB

Efter

Bredd:  |  Höjd:  |  Storlek: 1.6 KiB

Visa fil

Före

Bredd:  |  Höjd:  |  Storlek: 142 B

Efter

Bredd:  |  Höjd:  |  Storlek: 142 B

Visa fil

Före

Bredd:  |  Höjd:  |  Storlek: 140 B

Efter

Bredd:  |  Höjd:  |  Storlek: 140 B