1
0
Fork 0
made-in-akira/3d_models/akira/model 4.13/script.lua
2025-08-22 11:32:37 -03:00

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
]]