Omitl API
Experimental api adding a lot of interfaces, to use and consume.
Adding OMITL API to your project
Add the repository and choose one of the dependency options inside your build.gradle file:
repositories {
maven {
name = 'Omitl API Maven'
url = 'https://git.omitl.org/omitl-api/~maven'
content {
includeGroup 'org.omitl'
}
}
}
dependencies {
modImplementation "org.omitl:omitl-api:${omitl_version}"
modImplementation "org.omitl:omitl-api-core:${omitl_version}"
// Pick either core or the full API.
}
Features
This list includes major completed and WIP systems. Features marked as WIP are experimental, unfinished, or currently expose APIs primarily for testing and internal usage.
- The Core subproject focuses on lightweight, essential, and commonly requested functionality for modders that are easier to port.
- The Full package contains more rendering, experimental systems that are not yet finished, apis that are too instable between versions and internal tooling for mods that don't have widespread use.
Core
Registry/Datagen Util Systems
- Lightweight and streamlined registration utilities.
- Streamlined registry for blocks and Items following the pattern:
Multiblocks
- Add multiblock structures with custom block entities and renderers.
- Supports dynamically placeable and breakable structures larger than
1x1x1, up to27x27x27. - Multiblocks must implement directional faces as part of the system.
- Permanent/static facing can also be defined if rotation is unnecessary.
IK Solvers
- An inverse kinematics framework attachable to anything.
- A model part specialization of that solver
Entity Systems
Entity Part System
- Based on the Ender Dragon multipart system with additional utilities and extensions.
Entity Navigation
- Smoother and more intelligent pathfinding around large entities.
- Pathfinding designed for entities with advanced movement capabilities that are supposed to be faster.
- Pathfinding designed for larger entities
Common Models
Includes shared rendering/model utilities such as:
- Emissive blocks
- Handheld models larger than swords
- Handheld models smaller than swords
Rendering & Shader Systems
- General shader implementations and rendering hooks.
Sun and Moon Replacement System
- (Wip) Replace vanilla celestial assets with custom ones. (WIP)
- Replace fog color, clouds, sky color etc using enviromental attributes
Instanced Object Rendering
- Post-processing fog shaders.
- (WIP) Instanced SDF Geometry Rendering & pipelines
Animation Systems
3D & 2D Animation Support
- First-person model hooks
- Third-person model hooks
ModelPartreplacement API (Includes the ability to play animations in replaced parts.)
JSON-Based Animation Resources
- Tooling included for parsing Java models into JSON resources for supported entities.
Modeled Particle System
- Lightweight entity-style particle rendering.
- Designed for effects that require visual complexity without full entity logic or server synchronization.
- Significant performance improvements over traditional entities.
Experimental Rendering Systems
(WIP) Bolt/Spline Rendering
Spline-based rendering framework intended for effects such as:
- Lightning
- Energy beams
- Tentacles
- IK-driven appendages
Structure System Generalization
- Modify structures before and after they're built
- (WIP) Expand the structure framework into a generalized API.
With planned support for:
- Global spawn frequency modification
- better conditional spawning rules
- Dynamic structure behavior customization
Future Features
Advanced Particle Systems
- Potential SWMG-compatible particle framework ported to Fabric.
- Support for modern rendering features.
- GPU-rendered particles where feasible.
Advanced Pathfinding/AI Behaviors
- Alternative pathfinding algorithms:
- A*
- Dijkstra-based systems
- Cached large-scale navigation systems
- Herding
- Group coordination
- Team-based movement
- Breaking-Capable Pathing
- Allow entities to destroy K obstacles while navigating.
License:
Licensed under ARR, free for use and redistribution through CurseForge, modrinth and our websites and trough other mods.
Forge, backporting, etc. are not allowed by default, please don't ask again. Ports forward of features are allowed you can PR them!