CoreAnim

Description

CoreAnim 🔗


Interpolated animation modpack, using Luanti 5.9+ API with backwards compatible syntax.

About the modpack 🔗

This modpack contains library that wraps new ObjectRef:set_bone_override API into the backwards-compatible function with ObjectRef:set_bone_position and aims to generalise animation API, so you may use it for bone-based animations as you please.

The API is still being worked on, so it may have a breaking changes for any kind of extensions to ObjectRef:set_bone_position API. It may take a modders' opinions to stabilize itself.

Goals (and TODOs): 🔗

🗹 Provide interpolated bone-based animations for players' heads.

🗹 Basic compatibility with other mods and games, by not overwritting other bones animations and avoiding game-specific APIs.

Note: This means, I do not plan to implement anything that is not hardly dependant on default and player_api mods, those may be an optional dependencies, but should not be used for the core part of the mod.

🗹 Try to provide a backwards compatibility API, so bone overwrite mechanism is generalised and uses older API for older clients.

🗹 Consider making this a modpack over a single mod, to modularise it a bit and to alow to provide this as a library with backwards compatible syntax.

🗹 Consider replacing the official (engine) API once the modpack is activated, or find another way to make older mods use this over old API calls.

☐ Avoid game exceptions, rule exceptions etc. Make code generic enough so it can figure out any abnormalities on its own.

Note: The idea of this point is to make animations as much fitting into other games than MTG as possible. Some stuff however may be limited, due to conflicts with the game animations.

☐ Provide monoids API to resolve conflicts between game and mod animations.

License 🔗

This project is distributed under the terms of ISC license, distributed as COPYING file. Under no circumstances shall this project be distributed without the license file, or shared in any way that violates license terms and conditions.

Reviews

Review

Do you recommend this mod?

  • No reviews, yet.

Releases

v1.0.0-pre6

Download

2024-12-01 02:12 UTC

v1.0.0-pre6 🔗

  • project: Rename to Luanti.
  • project: Move from minetest to core.
  • compat: Fix reading flags from the settings.

v1.0.0-pre5

Download

2024-09-21 02:12 UTC

v1.0.0-pre5 🔗

  • core: External helpers script, has_api helper.
  • core: Initial settings definitions.
  • compat: Initial settings implementation.
  • compat: Fix typo in code… again.
  • compat: Refactor unregister implementation.
  • core: Add check for self-reference.
  • compat: Improvements and fixes.

v1.0.0-pre4

Download

2024-09-03 16:46 UTC

v1.0.0-pre4 🔗

🛠️ Fixes & Improvements

coreanim_core:

  • Fix typo in set_bone_override function.

  • Allow for scale override, it wasn't intentional to make that no-op argument, at least for now.

  • Improve how we fetch numeric value from dedicated_server_step, fixing compatibility with MCL games at library level.

ℹ️ Note

This is still more or less a workaround, dedicated_server_step should itself be a number. But it seems Minetest engine doesn't care much about it, being capable of interpreting it correctly anyway, and MCL devs probably unintentionally add inline comment that is actually interpreted as a value to their game.conf. At least code is now prone to that error, and we support it.

coreanim_head:

  • Use minetest.log() for warnings instead of warn() since I didn't know back then LuaJIT didn't support it (yet? ever?).

🧼️ Refactorings

coreanim_core:

  • Use helper function to generate objects (tables) in set_bone_position, this is done to (hopefully) make the code easier to read by splitting some generic constructions outside of the main logic.

  • Refactor how step_default's fallback value is set, instead of large if construction just use or.

  • Remove some no longer necessary if block, detach_call already sets detached set_bone_override if it wasn't set before.

coreanim_compat:

  • Implement unregister of the on_joinplayer callback by replacing it with no-op (empty) function, to avoid unnecessary condition checks each time it runs (possible performance benefits?). It can't be trully unregistered, at least without any risk of conflicting with the internal engine logic that loops over the registered_on_joinplayers table.

v1.0.0-pre3

Download

2024-08-30 22:52 UTC

v1.0.0-pre3 🔗

Fix MCL (VoxeLibre, Mineclonia, MineClone5 etc.) games support with compat, since those games set their dedicated_server_step to a value that might not be parsed correctly right now (it's not really a number, as it should be). This was found out previously in early development versions but wasn't taken into account when writting compat.

v1.0.0-pre2

Download

2024-08-25 00:22 UTC

v1.0.0-pre2 🔗

No important modpack changes or API modifications were done as a part of this release, only modpack metadata and documentation was updated.

All releases

Threads

New thread

Information

Provides

coreanim_compat coreanim_core coreanim_head

Dependencies

Required
No required dependencies

Information

Type
Mod
Technical Name
coreanim
Languages
English
License
ISC
Maintenance State
Work in Progress
Added
2024-08-18 11:38 UTC
Maintainers
SpacingBat3