I somehow keep making horrible mistakes without checking.
Fixes a bunch of item methods not actually running, whoops.
Fixed astonishing oversight that I somehow pushed that made disabling crafting with custom items for vanilla recipes no longer work correctly.
Fixes major oversight involving performance with a massive amount of blocks over time.
This update internally changes a lot.
NQMItems now must be classified into a group. Added a fake creative menu for better testing and ease of access. Particles and Projectiles are now split into 3 different class types.
- No prefix means the object supports no entities being linked normally
- Simple means it supports one entity
- Complex supports multiple entities
Added an inbuilt yaw rotation for the entities visually in both.
Both Projectiles and Particles are now spawned by just making a new object instead of through their handlers. The Particle and Projectile ticker are now always running. Fixed issue with performance involving entities sometimes sticking around when they shouldn't.
Completely rewrote the blocks system to be handled in SQL. This slightly increases complexity for developers interacting with the system but it greatly increases the benefits and far outweighs the cons of using such a system. Some benefits include better fine grained control and the ability to animate the entities linked to a block independently. This update also includes fixes for:
- Blocks not dropping when exploded if a custom block is in the explosion.
- Blocks being unable to be located without knowing their chunk.
- Block inventories lacking proper handling for item insertion cancellation.
Not only does this update rewrite the block system, it also includes a base NQMInventory alongside NQMBlockInventory to be able to expand upon. This lets developers not have to implement the same old precautions for inventory menus every single time.
Overall this release took longer then I would have liked it to but it still got done all the same after bothering to learn more about SQL.
Added a boilerplate abstract for SQLite databases.
Added custom skull support. Added player saves. Added player instanced data. Added player in range method.
Added a failsafe for particles and projectiles.
Improved documentation of certain methods in code, moved the item and block object lists over to a hashmap instead, and added a new method in the item handler to check if an item is actually custom.
Updated to 1.20.4