Community listing page, reviews may not be monitored by the author.
HexJSNeo
No reviews yet
Adding game contents via KubeJS for base mod Hex Casting, including pattern actions, special handlers, iota types, and more.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
Must be installed on both the client and the server.
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
HexJSNeo
Provides a way to create custom contents for Hex Casting via KubeJS.
Features
Core Concepts
- Minimal efforts: auto registered great pattern tags, omit all optional args, pipe everything, ...
- Weak typed:
ActionJSreturns,ActionRegistryJS.of, etc. - Mutable is best: no registration event and phase limit, writing and reloading everywhere in startup scripts, we're writing JS \yay/
- Clean global scope: everything under a single
HexJSglobal object, no leaks
Game Content Registry
ActionJS: basis for all executables- customizable
operate&operateInParens, with high degree-of-freedom return value handling - additional helper methods for creating
operatevarieties - assigning
mediaCostto auto-attach media-cost side effect on operate, withpreCheckMediamethods to help check & mishap before logics
ActionRegistryJS: registering certain patterns with actions- = Registry ID + Pattern prototype + inner
ActionJS+ Great-pattern marker (default false) - weak-typed constructor
ActionRegistryJS.of(...): args in any order among its constructor, missing ones auto-filled (id from pattern signature, freshActionJS,false); only the pattern is required - transparent proxy of inner
ActionJS: operate setters (setOperate& variants),mediaCostandpreCheckMediaare callable directly on the registry object - great spells are auto-tagged with per-world / enlightenment tags
- = Registry ID + Pattern prototype + inner
SpecialHandlerJS: taking an arbitrary pattern and retrieving its meanings- registers a JS
tryMatch(pattern, env)factory consulted for every drawn pattern SpecialHandlerJS.create(action, name)to help build aSpecialHandler, in whichactioncould be another specially createdActionJS- chain setter
setTryMatchfor KJS-ish usage
- registers a JS
IotaJS: highly customizable iota types- NBT-backed custom iotas:
IotaJS.type(id)creates the type, containingCompoundTagiota data - overriding common iota interfaces (display, color, size, etc.) with either callbacks or constants
- optional executability via
setOperate, controlling its execution behaviors outside and inside parens
- NBT-backed custom iotas:
ArgsJS: basically a forwarder for various built-in Kotlin extension functions- used on a mutable iota list manually, or called from
ActionJS.setOperateArgsSplit - typed getters (
double,vec3,entity, ...) with auto mishaps on missing args or wrong types
- used on a mutable iota list manually, or called from
CastingEnvironmentComponentJS: vanilla but in JS, with more convenient Key creation- each component takes a key string as the first constructor arg, from which the
Keyis auto-created & cached (setKeyto change it later) - usages and types same as vanilla
- each component takes a key string as the first constructor arg, from which the
MishapJS: highly customizable mishap types- declaring the type using
MishapJS.type()first, quite similar toIotaJS - calling
type.create()ortype.create(data)for a mishap of this type - KJS-ish piped methods to override all behaviors of created mishaps
- declaring the type using
- customizable
QoL Features
- Hot-swap everything
- everything, simple as
/kjs reload startup-scripts - covers: actions (entry action & prototype replaced in-place), special handlers, iota types
- not for those haven't created on startup, but it's possible to match later-created pattern actions using a SPECIAL handler :3
CastingEnvironmentComponentJSandMishapJSare born temporary and not covered here
- API & packages importer:
HexJS.API&HexJS.APIFlat- exposes all Hex Casting classes scanned from the mod jar, either nested by package (
HexJS.API.<...package>.<Class>) or flat (HexJS.APIFlat)
- exposes all Hex Casting classes scanned from the mod jar, either nested by package (
- everything, simple as
ProbeJS Typing Support
- generates typings for the JS-facing API, including nested
HexJS.APIlevels, fake-singleton classes flattened to static fields, and subclass members assigned onto their parents
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
(opens in a new tab)
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers