
🧰 Intro
Sanity integration for Kubejs. Add/Modify Sanity's feature so the kubejs users can has more control on Sanity.
🔧 Completed Features
1. Event in KJS
SanityEvents.change(event => {
// Access old and new sanity values
let oldSanity = event.getPreviousSanity();
let newSanity = event.getSanity();
// Example: Apply effects or trigger custom logic
if (newSanity <= 20) {
event.getEntity().addPotionEffect('minecraft:nausea', 200, 1);
}
});
SanityEvents.indicatorRender(event => {
event.cancel();
})
2. Sanity Manipulation Methods
The integration provides several methods to manage sanity values effectively:
getSanity()
: Returns the current sanity value.
getPreviousSanity()
: Returns the sanity value before the change.
setSanity(value)
: Sets the player's sanity to a specific value (0-100).
addSanity(value)
: Increases the player's sanity by the specified amount.
player.getSanity()
: get Player's sanity directly.
3. Utility Functions
Additional utility functions are provided to handle mathematical operations related to sanity:
clampNorm(value)
: Normalizes a number to a value between 0 and 1.
unclampNorm(normalizedValue)
: Converts a normalized value back to a readable number.
approximation(value, n)
: Truncates a number to n significant decimal places, useful for precise sanity calculations.
🔍 Areas for Improvement
Adding more events to allow complete modification and controll of Sanity's tickPlayer
.
Adding more events about render to allow better controll on render effects.
Additional Sanity Sources: Consider expanding sanity manipulation to include more sources or conditions, such as environmental effects or interactions with specific mobs.
🔄 Future Enhancements
Add Passive source of Sanity (Might support Hot reload?).
Able to modify visible rules based on player's sanity.
By incorporating these features and potential enhancements, the Sanity integration for KubeJS aims to offer a richer and more interactive modding experience for both developers and players.
> Please Join our Discord server if you have any quesion.