From ec4a1ae4ec6d66fced18f97433f8cf5b2e694d4e Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Tue, 16 Oct 2018 04:23:18 -0400 Subject: updated gloopblocks removed stu's split-limb model and switched to Rui's "bone-based player animation" mod --- playeranim/model.lua | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 playeranim/model.lua (limited to 'playeranim/model.lua') diff --git a/playeranim/model.lua b/playeranim/model.lua new file mode 100644 index 0000000..717382c --- /dev/null +++ b/playeranim/model.lua @@ -0,0 +1,99 @@ +-- Bone alias +local BODY = "Body" +local HEAD = "Head" +local CAPE = "Cape" +local LARM = "Arm_Left" +local RARM = "Arm_Right" +local LLEG = "Leg_Left" +local RLEG = "Leg_Right" + +-- Version of player model +local DEFAULT_PLAYER_MODEL_VERSION = "MTG_4_Jun_2017" + +local VALID_PLAYER_MODEL_VERSIONS = { + MTG_4_Jun_2017 = true, + MTG_4_Nov_2017 = true, +} + +local LEGACY_PLAYER_MODEL_VERSIONS = { + default_character_v1 = true, + default_character_v2 = true, + default_character_v3 = true, +} + +local BONE_POSITIONS = { + MTG_4_Jun_2017 = { + [BODY] = {x = 0, y = -3.5, z = 0}, + [HEAD] = {x = 0, y = 6.5, z = 0}, + [CAPE] = {x = 0, y = 6.5, z = 1.2}, + [LARM] = {x = 3, y = 5.5, z = 0}, + [RARM] = {x = -3, y = 5.5, z = 0}, + [LLEG] = {x = 1, y = 0, z = 0}, + [RLEG] = {x = -1, y = 0, z = 0}, + + body_sit = {x = 0, y = -5.5, z = 0}, + body_lay = {x = 0, y = -5.5, z = 0}, + }, + MTG_4_Nov_2017 = { + [BODY] = {x = 0, y = 6.25, z = 0}, + [HEAD] = {x = 0, y = 6.5, z = 0}, + [CAPE] = {x = 0, y = 6.5, z = 1.2}, + [LARM] = {x = 3, y = 5.5, z = 0}, + [RARM] = {x = -3, y = 5.5, z = 0}, + [LLEG] = {x = 1, y = 0, z = 0}, + [RLEG] = {x = -1, y = 0, z = 0}, + + body_sit = {x = 0, y = -5, z = 0}, + body_lay = {x = 0, y = -5, z = 0}, + }, +} + +local BONE_ROTATIONS = { + MTG_4_Jun_2017 = { + [BODY] = {x = 0, y = 0, z = 0}, + [HEAD] = {x = 0, y = 0, z = 0}, + [CAPE] = {x = 0, y = 0, z = 0}, + [LARM] = {x = 0, y = 0, z = 0}, + [RARM] = {x = 0, y = 0, z = 0}, + [LLEG] = {x = 0, y = 0, z = 0}, + [RLEG] = {x = 0, y = 0, z = 0}, + + body_sit = {x = 0, y = 0, z = 0}, + body_lay = {x = 270, y = 0, z = 0}, + }, + MTG_4_Nov_2017 = { + [BODY] = {x = 0, y = 0, z = 0}, + [HEAD] = {x = 0, y = 0, z = 0}, + [CAPE] = {x = 0, y = 0, z = 0}, + [LARM] = {x = 0, y = 0, z = 0}, + [RARM] = {x = 0, y = 0, z = 0}, + [LLEG] = {x = 0, y = 0, z = 0}, + [RLEG] = {x = 0, y = 0, z = 0}, + + body_sit = {x = 0, y = 0, z = 0}, + body_lay = {x = 270, y = 0, z = 0}, + }, +} + +local PLAYER_MODEL_VERSION = (function() + local version = minetest.settings:get("playeranim.model_version") + if version == nil or version == "" then + version = DEFAULT_PLAYER_MODEL_VERSION + end + + if LEGACY_PLAYER_MODEL_VERSIONS[version] then + error("The model version '" .. version .. "' is no longer suppported") + elseif not VALID_PLAYER_MODEL_VERSIONS[version] then + error("Invalid value for playeranim.model_version in minetest.conf: " .. version) + end + + return version +end)() + +local BONE_POSITION = BONE_POSITIONS[PLAYER_MODEL_VERSION] +local BONE_ROTATION = BONE_ROTATIONS[PLAYER_MODEL_VERSION] +if not BONE_POSITION or not BONE_ROTATION then + error("Internal error: invalid player_model_version: " .. PLAYER_MODEL_VERSION) +end + +return BONE_POSITION, BONE_ROTATION -- cgit v1.2.3