Almost a complete rewrite, lots of new features, and better performance.
Please refer to this page for updating your resource packs to this version of Celestial
Performance
- Moved to a different expression parsing system, which performs significantly better than the previous one.
- FPS no longer drops when rendering large quantities of populate objects.
- Overall improved various parts of Celestial, which should result in better performance.
Triangle Fan Objects
- Added a new type of celestial object: "triangle_fan". Triangle fans can be used to create circular objects and twilight effects.
Twilight Objects
- Added a new type of celestial object: "twilight". Twilight objects can be used to create custom twilight effects (ex. custom sunrises/sunsets).
- As a result, twilight settings in the environment category have been deprecated, and will be removed in an upcoming update.
Sky Objects
- Changed default base degree rotations for x and z to be 0 degrees.
- Added "legacy_rotations" boolean to dimensions.json, which the default base degree rotations for x and z back to -90 degrees.
- Changed default values for unset options to be greater than 0.
Local Variables
- Variables can now be registered directly in a sky object file, within the "local_variables" json object list.
- Local variables can only be used in the sky object it was registered in.
Vertex List
- Added "alpha" and "color" entries to individual vertex points.
- Slightly improved vertex list rendering performance.
Error Messages
- Improved error messages to be more easier to read visually, and to be significantly more useful.
- Error messages will state where they occured, and will be slightly more specific as to what is causing the issue.
- Error messages will also state if they occured during compilation, or if they occured after.
- An error message will now occur when a texture path is invalid.
Color Entries
- Added global color entries, located in "celestial/sky/color_entries.json". Global color entries are color entries that can be registered and used in place of HEX color values.
- Removed "inherit" option from color entries, as "#skyColor" and "#fogColor" can be used instead. Color Entry Overrides
- Renamed "alpha" entry to "ratio".
- Added "red_ratio", "gren_ratio", "blue_ratio" entries, which control the ratio of each color.
- Added "red", "green", and "blue" entries.
- Added three new variables for color entry overrides: "red", "green", and "blue" (Returns the RGB values before the color override is applied). Color Entry Blend Types
- Added "blend_type" entry, which determines the method for blending the color override with the base color.
- Added "linear_interpolation" blend type, which is the default blend type.
- Added "override" blend type, which completely overrides the original color. Useful when using the "red", "green", and "blue" variables. Ratios are ignored for this blend type.
- Added "lab" blend type, which uses LAB colors instead of RGB colors when blending. Results in much nicer color blend gradients when used.
- Added "apply_fog_additions" blend type, which applies additional fog effects from twilight objects.
Sky Boxes
- Sky boxes can now be rotated using base degree rotation values.
- Removed unnecessary "texture" entry in skybox properties
Variables and Functions
-
Removed requirement for variable calls to start with a hashtag. Hashtags will however still be accepted in equations, and will simply be ignored.
-
Renamed "rainLevel" to "rainAlpha", and changed it to no longer return "1 - (Rain level)".
-
Renamed "thunderGradient" to "thunderAlpha"
-
Renamed function "isInBiome" to "inBiome".
-
Renamed function "isUsing" to "rightClickingWith".
-
Renamed function "isMiningWith" to "leftClickingWith".
-
Renamed function "isHolding" to "holding".
-
Renamed function "isInArea" to "inArea".
-
Renamed function "distanceToBiomeIgnoreY" to "distanceToBiomeFlat".
-
Changed function "distanceToBiome" arguments to "distanceToBiome([Distance], [Biome Name]...)".
-
Changed function "distanceToBiomeFlat" arguments to "distanceToBiomeFlat([Distance], [Y Position], [Biome Name]...)".
-
Changed function "inBiome" arguments to "inBiome([Biome Name]...)".
-
Changed function "holding" arguments to "holding([Item ID]...)".
-
Changed function "leftClickingWith" arguments to "leftClickingWith([Item ID]...)".
-
Changed function "rightClickingWith" arguments to "rightClickingWith([Item ID]...)".
-
Renamed variable "isRightClicking" to "rightClicking".
-
Renamed variable "isLeftClicking" to "leftClicking".
-
Renamed variable "isSubmerged" to "submerged".
-
Renamed variable "getGameTime" to "gameTime".
-
Renamed variable "getWorldTime" to "worldTime".
-
Renamed variable "getDayTime" to "dayTime".
-
Renamed variable "xPos" to "posX".
-
Renamed variable "yPos" to "posY".
-
Renamed variable "zPos" to "posZ".
-
Replaced "[Number]m[Min]" format with function "min([Number], [Min]...)".
-
Replaced "[Number]M[Max]" format with function "max([Number], [Max]...)".
-
Added variable "bossSkyDarken", which returns the percent of the fog darken effect created by withers/ender dragons.
-
Added function "colorEntryRed([Color Entry Name])", which returns the red value of a color entry.
-
Added function "colorEntryGreen([Color Entry Name])", which returns the green value of a color entry.
-
Added function "colorEntryBlue([Color Entry Name])", which returns the blue value of a color entry.
-
Added function "modulo([Number], [Divisor])", which returns the modulo of a number.
-
Added function "repeat([Number], [Lower Bounds], [Upper Bounds])", which clamps a number between two bounds but returns repeating values when going beyond the bounds.
-
Added function "clamp([Number], [Lower Bounds], [Upper Bounds])", which clamps a number between two bounds.
-
Added function "lerp([Number 1], [Number 2], [0-1 Ratio])", which returns the linear interpolation between two numbers.
-
Added function variant of "starAlpha", "starAlpha([Sky Angle])", which allows for a custom sky angle as an argument.
-
Added function variant of "dayLight", "dayLight([Sky Angle])", which allows for a custom sky angle as an argument.
Twilight Functions
- Added various functions to help with the creation of custom twilight effects.
- Added function "twilightAlpha([Sky Angle])", which returns the alpha of the twilight effect for a specific sky angle.
- Added function "twilightProgress([Sky Angle])", which returns how far the twilight has progressed for a specific sky angle.
- Added function "twilightFogEffect([Sky Angle])", which returns the alpha of the twilight fog effect for a specific sky angle.
Sky Object Properties
- Added "blend" option, which determines if the object should have transparency blending.
- Removed "red", "green", and "blue" entries, as the "color" entry can be used instead.
- Removed "ignore_fog", since it didn't really do anything.
Does not support 1.19.3+
Fixes and changes a few things. Will probably be the last update before the new equation parsing system is implemented.
Changelog:
-
Fixed fog not working correctly in certain scenarios
-
Renamed #getTotalTime to #getGameTime
-
Renamed #yaw to #headYaw
-
Renamed #pitch to #headPitch
-
Added #getWorldTime, which returns the total time a world has been active for
-
Added #biomeTemperature, which returns the current biome's temperature
-
Added #biomeDownfall, which returns the biome's humidity
-
Added #biomeHasSnow, which returns if the biome has snow