Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

[EMF] Entity Model Features 2.0

Changelog

  • texture overrides now give the missing texture texture if the texture wasn't found instead of not applying

  • fixed first person hand jittering with certain player animation resource-packs

  • added the ifb() randomb() catch() animation functions

    • ifb() is a boolean returning version of if()
    • randomb() is a boolean returning version of random()
    • catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printout
  • added the is_jumping is_swimming is_gliding is_right_handed animation variables

  • added the modelRule modelSuffix var varb global_var global_varb random properties

  • removed the restriction on entity variables making them only accessible from the declaring model (OptiFine parity) (wolf_collar.jem can now correctly access variables set by wolf.jem on the same wolf)

  • added a model display to the model list in the gui to see the model before exporting its .jem file

  • added attachment points

  • added arrow & spectral_arrow model support

  • added new model parts listed in OptiFine 1.20.4_HD_U_I8_pre3

  • added variables distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_up

  • added Global variables, they are specified in the format "global_var.<name>" (float) or "global_varb.<name>" (boolean), they are shared by all mobs and block entities and allow more technical things like counting entities

  • improved rule_index, now correctly applies 0 when no rule is met

  • fixed the cannot inherit from final class forge crash returning in v1.3

  • moved the variant property into ETF

  • fixed crash .jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is null

  • added the model file name to crash messages where it was missing

  • added sizeAdd to the emf model exporting

  • the emf model exporting now does 2 export log passes for each model with known OptiFine part names, one pass with, and one without the OptiFine part names. The one without might reveal some extra parts, that do not get used by OptiFine, or have been added by mods

  • EMF model part boxes may now additionally declare sizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.

  • added OptiFine part name definitions for breeze, breeze_eyes, breeze_wind, wind_charge

  • fixed case where "!(arms.visible)" works but "!arms.visible" doesn't in 1.3

  • the directory format for modded models has been changed from assets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jem

    • the old directory with the /modded/ folder is still supported for now but is considered deprecated
    • this change makes things more consistent with modded name spaces
    • the emf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem
  • added a setting for the animation distance LOD setting, to now factor in an entities size to affect larger entities less

  • fixed a crash when methods were directly inverted e.g !between(....)

  • failed animation expressions will now resolve to 0 when applied to a model part or variable (OptiFine parity)

  • supports ETF's new config screen builder

    • added a category Animation math details which lists and explains all functions and variables registered to the animation math system
    • added a category All models which allows applying certain settings per .jem file as well as selectively disable the loading of certain models
    • moved a few settings, mostly for the distance LOD, into the new category performance settings
    • added settings into the per entity settings category to allows applying certain settings to only those entities

Files

entity_model_features_forge_1.18.2-2.0.jar(369.06 KiB) Primary Download

External resources



Project members

Traben

Owner


Technical information

License
LGPL-3.0-only
Client side
required
Server side
unsupported
Project ID