feat(mod): scripted HoldMyItems on LuaJ (hand/item/model scripts, addons, vanilla overrides, particles, camera)
Claude-Session: https://claude.ai/code/session_01F1M1Jic1wTSn4igUENynmZ
This commit is contained in:
parent
44353e893c
commit
0504be5b57
21 changed files with 750 additions and 139 deletions
|
|
@ -0,0 +1,9 @@
|
|||
-- LoVisual HoldMyItems: поза руки относительно сцены (после hand_pose).
|
||||
-- Пример: при смене предмета рука чуть "отъезжает" в сторону. Свои флаги ванили:
|
||||
-- V:cancelEquip(true) отключить ванильный подъём предмета (его заменяет скрипт)
|
||||
-- V:cancelSwing(true) отключить ванильный свинг
|
||||
local side = rightArm and 1 or -1
|
||||
if equipProgress > 0 then
|
||||
M:moveX(0.12 * equipProgress * side)
|
||||
M:rotateZ(-10 * equipProgress * side)
|
||||
end
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-- LoVisual HoldMyItems: анимация частей (квадов) модели предмета.
|
||||
-- animator:rotateX/Y/Z(from, to, deg, px, py, pz) вращение квадов с индексами from..to вокруг pivot (в пикселях)
|
||||
-- animator:moveX/Y/Z(from, to, pixels), animator:scale(from, to, k, px, py, pz); quadCount = число квадов.
|
||||
-- Пример: мечи слегка "дышат" клинком.
|
||||
if I:isSword() and quadCount > 0 then
|
||||
animator:rotateZ(0, quadCount, M:sin(time * 2.0) * 1.5, 8, 0, 8)
|
||||
end
|
||||
|
|
@ -16,3 +16,13 @@ end
|
|||
if usingItem and (I:getUseAction() == 'eat' or I:getUseAction() == 'drink') then
|
||||
M:rotateZ(M:sin(useDuration * 1.1) * 3)
|
||||
end
|
||||
|
||||
-- искры у зачарованных предметов: Lua-частицы (координаты в системе руки, колбэк tick на каждый тик)
|
||||
if I:isEnchanted() and M:sin(time * 9) > 0.96 then
|
||||
particleManager:addParticle({
|
||||
x = 0.0, y = 0.2, z = -0.3,
|
||||
vx = 0.0, vy = 0.01, vz = 0.0,
|
||||
lifetime = 14, size = 0.02, color = 0xFFB66CFF, gravity = -0.001,
|
||||
tick = function(p) p.size = p.size * 0.96 end
|
||||
})
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3341,6 +3341,7 @@
|
|||
"setting.autorespawn.delay": "Delay",
|
||||
"module.deathcoords.description": "Sends the coordinates of your latest death to the chat.",
|
||||
"setting.deathcoords.show_dimension": "Show dimension",
|
||||
"setting.holdmyitems.always_hands": "Always render both hands",
|
||||
"setting.holdmyitems.mode": "Mode",
|
||||
"setting.holdmyitems.mode.option.Dynamics": "Dynamics (Java)",
|
||||
"setting.holdmyitems.mode.option.Scripts": "Scripts (Lua)",
|
||||
|
|
|
|||
|
|
@ -3136,6 +3136,7 @@
|
|||
"setting.autorespawn.delay": "Задержка",
|
||||
"module.deathcoords.description": "Отправляет в чат координаты вашей последней смерти.",
|
||||
"setting.deathcoords.show_dimension": "Показывать измерение",
|
||||
"setting.holdmyitems.always_hands": "Всегда рисовать обе руки",
|
||||
"setting.holdmyitems.mode": "Режим",
|
||||
"setting.holdmyitems.mode.option.Dynamics": "Динамика (Java)",
|
||||
"setting.holdmyitems.mode.option.Scripts": "Скрипты (Lua)",
|
||||
|
|
|
|||
|
|
@ -156,8 +156,10 @@
|
|||
"render.item.EquipmentLayerRendererMixin",
|
||||
"render.item.ItemFeatureRendererMixin",
|
||||
"render.item.ItemInHandAlwaysVisibleMixin",
|
||||
"render.item.model.ItemModelAnimatorMixin",
|
||||
"render.item.ItemInHandRendererMixin",
|
||||
"render.level.CameraMixin",
|
||||
"render.level.CameraScriptMixin",
|
||||
"render.level.particles.FireworkParticlesStarterMixin",
|
||||
"render.level.LevelRendererMixin",
|
||||
"render.level.particles.ParticleManagerMixin",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue