205 lines
8.7 KiB
Lua
205 lines
8.7 KiB
Lua
require("GSAnimBlend")
|
|
local anims = require("EZAnims")
|
|
local example = anims:addBBModel(animations.akira_eiko_olivia_pink)
|
|
vanilla_model.PLAYER:setVisible(false)
|
|
vanilla_model.ARMOR:setVisible(false)
|
|
vanilla_model.HELD_ITEMS:setVisible(true)
|
|
vanilla_model.CAPE:setVisible(false)
|
|
vanilla_model.ELYTRA:setVisible(false)
|
|
animations.akira_eiko_olivia_pink.sit_emote:setBlendTime(2)
|
|
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.spyglog)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.spyglog2)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.attackL)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.attackR)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_01)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_02)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_03)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_04)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_05)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_06)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_07)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_08)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_09)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_10)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_11)
|
|
example:addAllOverrider(animations.akira_eiko_olivia_pink.taunt_12)
|
|
|
|
|
|
-- nameplate.All:setText('[{"text":"akirapink","color":"#ff73d3"}]')
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RightCamera:setPrimaryTexture("Custom", textures["camera"])
|
|
|
|
--end
|
|
function events.entity_init() -- when the avatar first loads...
|
|
curxp = player:getExperienceLevel() -- set it once so there's not immediately an error
|
|
local MovementAPI = player:getVariable().MovementAPI
|
|
end
|
|
|
|
|
|
-- bladeHeld = false
|
|
-- local sword = keybinds:newKeybind("Show Sword", "key.keyboard.p")
|
|
-- function sword.press()
|
|
-- bladeHeld = not bladeHeld
|
|
-- end
|
|
|
|
-- local afkMod = require("FOXAPI.api").afk -- Require FOXAPI's AFK module
|
|
local camera = keybinds:newKeybind("Show Camcorder", "key.keyboard.z")
|
|
local keyHeld = false
|
|
|
|
function camera.press()
|
|
sounds:playSound("item.spyglass.use", player:getPos(), 1, 1, false)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RightCamera:setVisible(true)
|
|
animations.akira_eiko_olivia_pink.spyglog2:setPlaying(true)
|
|
models.akira_eiko_olivia_pink.root.Body.Elytra:setPrimaryTexture("Custom", textures["elytra"])
|
|
models.akira_eiko_olivia_pink.RipeCamera:moveTo(models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RipeCamera:setPrimaryTexture("Custom", textures["camera"])
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RipeCamera:setVisible(true)
|
|
keyHeld = true
|
|
end
|
|
|
|
function camera.release()
|
|
sounds:playSound("item.spyglass.stop_using", player:getPos(), 1, 1, false)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RipeCamera:setPrimaryTexture("Custom", textures["camera"])
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RipeCamera:setVisible(false)
|
|
animations.akira_eiko_olivia_pink.spyglog2:setPlaying(false)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RipeCamera:moveTo(models.akira_eiko_olivia_pink)
|
|
keyHeld = false
|
|
end
|
|
|
|
-- afkMod.config.timeUntilAFK = 40
|
|
---@param dirVec Vector3
|
|
---@return Vector3
|
|
local function directionToEuler(dirVec)
|
|
local yaw = math.atan2(dirVec.x, dirVec.z)
|
|
local pitch = math.atan2(dirVec.y, dirVec.xz:length())
|
|
return vec(-pitch, -yaw, 0)
|
|
end
|
|
---@param dirVec Vector3
|
|
---@return Vector3
|
|
local function directionToEulerDegree(dirVec)
|
|
local yaw = math.atan2(dirVec.x, dirVec.z)
|
|
local pitch = math.atan2(dirVec.y, dirVec.xz:length())
|
|
return vec(-math.deg(pitch), -math.deg(yaw), 0)
|
|
end
|
|
|
|
|
|
|
|
-- function events.render(delta,context)
|
|
-- local firstPerson = context == "FIRST_PERSON"
|
|
-- models.akira_eiko_olivia_pink.root.Head:setVisible(not (renderer:isFirstPerson() and context == "OTHER"))
|
|
-- if keyHeld then
|
|
-- models.akira_eiko_olivia_pink.root.RightArm:setVisible(not (renderer:isFirstPerson() and context == "OTHER"))
|
|
-- end
|
|
-- end
|
|
|
|
function events.tick() -- every tick...
|
|
if curxp < player:getExperienceLevel() then -- ...compare LV to what it was, and if it's higher...
|
|
sounds:playSound("levelup", player:getPos(), 0.15, 1) -- ... Your LOVE increased! (plays the sound)
|
|
end
|
|
curxp = player:getExperienceLevel() -- set the value again so it doesn't play constantly
|
|
-- if wasAFK ~= afkMod.isAFK then
|
|
-- animations.akira_eiko_olivia_pink.afk_loop:setPlaying(afkMod.isAFK) -- Animation to play when you become AFK
|
|
-- animations.akira_eiko_olivia_pink.afk_end:setPlaying(not afkMod.isAFK) -- Animation to play when you stop being AFK
|
|
-- end
|
|
end
|
|
-- wasAFK = afkMod.isAFKlocal
|
|
randAnims = {
|
|
animations.akira_eiko_olivia_pink.taunt_01,
|
|
animations.akira_eiko_olivia_pink.taunt_02,
|
|
animations.akira_eiko_olivia_pink.taunt_03,
|
|
animations.akira_eiko_olivia_pink.taunt_04,
|
|
animations.akira_eiko_olivia_pink.taunt_05,
|
|
animations.akira_eiko_olivia_pink.taunt_06,
|
|
animations.akira_eiko_olivia_pink.taunt_07,
|
|
animations.akira_eiko_olivia_pink.taunt_08,
|
|
animations.akira_eiko_olivia_pink.taunt_09,
|
|
animations.akira_eiko_olivia_pink.taunt_10,
|
|
animations.akira_eiko_olivia_pink.taunt_11,
|
|
animations.akira_eiko_olivia_pink.taunt_12,
|
|
-- animations.akira_eiko_olivia_pink.taunt_13,
|
|
-- animations.akira_eiko_olivia_pink.taunt_11,
|
|
-- animations.akira_eiko_olivia_pink.taunt_14,
|
|
-- animations.akira_eiko_olivia_pink.taunt_15,
|
|
-- animations.akira_eiko_olivia_pink.taunt_16,
|
|
}
|
|
|
|
|
|
function models.akira_eiko_olivia_pink.preRender()
|
|
if keyHeld then
|
|
models.akira_eiko_olivia_pink.root.RightArm:setOffsetRot(vanilla_model.HEAD:getOriginRot())
|
|
else
|
|
models.akira_eiko_olivia_pink.root.RightArm:setOffsetRot(0)
|
|
end
|
|
end
|
|
|
|
--change nameplate
|
|
function events.POST_RENDER(delta)
|
|
-- Get the world-space position of the head plus the offset of the nameplate.
|
|
local head_pos = models.akira_eiko_olivia_pink.root.Head:partToWorldMatrix():apply():add(0, 0.89375)
|
|
-- Get the offset Minecraft uses to determine where the nameplate goes.
|
|
local plate_offset = vec(0, player:getBoundingBox().y + 0.5, 0)
|
|
-- Combine the player's position with that offset to get the plate's world position.
|
|
local plate_pos = player:getPos(delta):add(plate_offset)
|
|
-- Add the difference between the head and plates world positions to the plate offset.
|
|
nameplate.ENTITY:setPivot(plate_offset:add(head_pos:sub(plate_pos)))
|
|
end
|
|
|
|
|
|
local bladeHeld = false
|
|
function pings.examplePing(state)
|
|
bladeHeld = state
|
|
end
|
|
-- local exampleKey = keybinds:newKeybind("Show Rose Gold Rapier", "key.keyboard.p")
|
|
|
|
-- exampleKey.press = function()
|
|
-- bladeHeld = not bladeHeld
|
|
-- pings.examplePing(bladeHeld)
|
|
-- end
|
|
|
|
function events.item_render(item, mode)
|
|
if item:getName():find("Rose Gold Rapier") or bladeHeld then
|
|
return models.akira_eiko_olivia_pink.ItemRapier
|
|
else if item:getName():find("Pool Noodle") then
|
|
return models.akira_eiko_olivia_pink.ItemNoodle
|
|
end
|
|
end
|
|
end
|
|
|
|
--[[ The Horror Terror
|
|
function events.item_render(item, mode)
|
|
if item:getName():find("Rose Gold Rapier") then
|
|
return models.akira_eiko_olivia_pink.ItemRapier
|
|
else if item:getName():find("Rose Gold Rapier") and mode:find("GUI") then
|
|
return textures.akira_eiko_olivia_pink.rose_gold_rapier_handheld
|
|
else if item:getName():find("Pool Noodle") then
|
|
return models.akira_eiko_olivia_pink.ItemNoodle
|
|
end
|
|
end
|
|
end
|
|
end
|
|
]]
|
|
|
|
|
|
-- animations.akira_eiko_olivia_pink.spyglassL:setBlendTime(0)
|
|
-- animations.akira_eiko_olivia_pink.spyglassR:setBlendTime(0)
|
|
|
|
--replaces Spyglass with custom Camera
|
|
-- CREDIT: asteroidandroid on Figura Discord ( 316032015097135114 )
|
|
--[[
|
|
function events.item_render(item, mode, pos, rot, scale, left)
|
|
if mode:find("LEFT") then
|
|
if item.id:find("spyglass") then
|
|
models.akira_eiko_olivia_pink.root.LeftArm.LeftForeArm.LeftHand.LeftCamera:setVisible(true)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RightCamera:setVisible(false)
|
|
return models.akira_eiko_olivia_pink.ItemSpyglass
|
|
end
|
|
else
|
|
if item.id:find("spyglass") then
|
|
models.akira_eiko_olivia_pink.root.LeftArm.LeftForeArm.LeftHand.LeftCamera:setVisible(false)
|
|
models.akira_eiko_olivia_pink.root.RightArm.RightForeArm.RightHand.RightCamera:setVisible(true)
|
|
return models.akira_eiko_olivia_pink.ItemSpyglass
|
|
end
|
|
end
|
|
end
|
|
]]
|
|
|