All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project follows the Ragnarök Versioning Convention.
- Fixed
RedCorePluginnot being able to be found by the loader
- Deprecated
ClampUtil#clampTest,ClampUtil#clampMinFirst,ClampUtil#clampMaxFirstin favor ofClampUtil#clamp
- Added
RedDeprecatedannotation - Added
ClampUtil#clampmethods for all primitives
- Improved the build script
- Updated dependencies:
- Updated to gradle-buildconfig-plugin 6.0.7
- Updated to gradle-idea-ext-plugin 1.3
- Updated to io.freefair.lombok 9.1.0
- Updated to foojay-resolver 1.0.0
- Updated to Gradle 9.2.1
- Updated to JUnit 5.14.1
- Added
RedLoadingPluginan abstract class which you can extend instead of implementingIFMLLoadingPlugin, it implements the standard stub methods for you
- Updated
mcmod.info - Moved
RedCorePlugintoasmpackage
- Fixed
namebeingcoreinstead ofRed Core
- Updated dependencies:
- Updated to RetroFuturaGradle 2.0.2
The method RedLogger#printFramedError has been renamed to RedLogger#logFramedError, all usages should be updated before 0.8.
Casea utility enum for handling checking, applying and enforcing naming conventions, currently supported casing:camelCasePascalCasekebab-caselower_snake_caseUPPER_SNAKE_CASE
- Added
RedLogger#framedwhich allows logging lists in a readable manner (e.g., versioning information) - Added
DecimalUtilsa utility class which currently allows for truncating decimal numbers for human reading - Added empty private constructors to hide implicit public ones
- Added the brand new
Vectorsuite, it hasVector3andVector2variants for every primitive
- Improved documentation for
RedLogger#logFramedError - Renamed
RedLogger#printFramedErrortoRedLogger#framedError - Switched from Javadoc to Markdowndoc
- Most utility classes now use Lombok
@UtilityClass
- Updated to foojay-resolver 0.9.0
- Updated to gradle-buildconfig-plugin 5.5.1
- Updated to Gradle 8.12
- Changed the root project name
- Set a minimum Gradle Daemon JVM version requirement
- Switched to the new standard
gradle.properties - Updated to io.freefair.lombok 8.12
- Updated Qodana
- Cleaned up tests
- Updated to org.jetbrains.gradle.plugin.idea-ext 1.1.9
- Use Jabel
- General cleanup
- Vectors now uses interfaces for consistent implementations
- Updated to RetroFuturaGradle 1.4.2
- Switched to the new standard
gradle.properties - Reworked buildscript
AABBUtila utility class for handling axis aligned bounding boxesAABBUtil#orientAABBa utility method for orienting a north facing AABB towards anyEnumFacingallowing you to make only one AABB that works for every direction- Added empty private constructors to hide implicit public ones
- Removed support for 1.7.10 (Compatibility layer caused issue with the ownership system, wrongfully attributing issues to Red Core)
OptiNotFinenow usesMethodHandle
- Minor cleanup
- Updated to RetroFuturaGradle 1.4.2
- Improved compatibility with older versions
- Fixed version check
- Fixed mod not showing up in the mod menu in older versions
Welcome to Red Core 0.5 an originally breaking release, but now it has a compatibility layer, all mods using it should update before 0.8 when the compatibility layer will be removed.
Note: The compatibility layer is only for the MC (Minecraft) part of Red Core as normally it should only have been used there prior to 0.5
Red Core and its Minecraft parts have been separated into two, this allows for greater freedom in how we develop Red Core, but also allows for Red Core to be used in any Java project. Thanks to this separation, Red Core MC is now available for 1.7.10 through 1.12.2 meaning every version in between is compatible.
The old groupId was bad, and I did not own it, now both of these things are fixed by the brand new dev.redstudio which is more readable and sounds better, also I actually own it.
Say welcome to the new Red Core branding! The Readme is also getting a makeover.
- Added an
Experimentalannotation - Added a new experimental vector suite, this is supposed to replace the existing vector suite in 0.6 the existing vector suite is marked for removal in 0.8
- Added a compatibility layer for old groupId which is marked for removal in 0.8
MathUtilis now underutils.math- Separated
MathUtilclamping methods into their own classClampUtil - Changed GroupId from
io.redstudioragnaroktodev.redstudio - Made
RedLogger#RANDOMprivate
- Removed
Stopwatchit wasn't that good or useful but was fun to make
- Fixed inconsistent argument naming in
MathUtil#lerp
- Switched to gradle-buildconfig-plugin entirely for project constants
- Switched to Gradle Kotlin DSL
- Switched to Adoptium
- General cleanup
- Added support for mc versions 1.7.10 through 1.12.2
- Switched to CurseUpdate for update checking
- Moved
startClientTickerfromRedCoreto `RedClientTicker - Moved
forceOptiFineFastRenderOfffromRedCoretoOptiNotFine - Deprecated the vector suite as it is to be replaced by the new vector suite in 0.6
- Removed
pack.mcmeta
- General cleanup
Welcome to Red Core 0.4 a non-breaking release that includes a lot of Quality of Life enhancements and general polishing of certain parts of Red Core.
Red Core 0.5 will be a breaking release since we will switch from io.redstudioragnarok to dev.redstudio stay tuned as dev builds will only be released for devs on GitHub as to not cause issue will mods prepare their updates.
You now have read and write methods for all Vectors from Red Core, it simply take in ByteBuf and takes care of the rest.
RedLogger#printFramedError will not add empty lines anymore if whatNow and/or additionalInformation is empty.
- NetworkUtil: Designed to streamline network coding practices, this utility makes writing cleaner, safer, and more efficient networking code effortless.
- Added
readandwritemethods to all vectors that allows for easy networking - Added
int,shortandbyteversions ofclampTest,clampMinFirstandclampMaxFirstinMathUtil - Added
intversions of the vectors - Added a
Vec2fconstructor for the 2-dimensional vectors - Added a
zeromethod for the 2-dimensional vector - Added missing
pack.mcmeta
- Red Core is now a core-mod making it load as early as possible, so Red Core can now be used in Mixins for example
RedLogger#printFramedErrorwill not add empty lines ifwhatNowand/oradditionalInformationis empty- Improved error logging of the Stopwatch
- Red Core jar name now has a
!at the start so that it gets loaded earlier than mods using it - Cleaned up the vectors they might be slightly more performant as a result
- Updated
mcmod.info
- Fixed Red Core using the wrong GitHub issue link when logging errors
- Fixed Red Core using its id instead of its name for logging
- Fixed Forge not being able to subscribe the RedClientTicker causing a crash
- RedClientTicker: A useful ticker that allows you to have ticks every 2, 5 or 10 normal ticks, for things that shouldn't run 20 times a second.
- OptiNotFine: A must-have when working with OptiFine compatibility, it allows you to know if OptiFine is installed, whether shaders are loaded, and to force fast render off.
- RedLogger now uses a String instead of a URI for the
newIssueLinkparameter, the old constructor has been deprecated and is due for removal for 0.4 - RedLogger recomfort messages might be more random
- Optimized
RedLogger#printFramedErrorit should now use slightly less memory and thus have less GC pressure
- MathUtil: A purpose-built class providing an array of mathematical methods, engineered with a steadfast focus on rapid processing and calculations.
- Vectors: A comprehensive and efficient suite of vectors, designed with performance and simplicity in mind.
- RedLogger: An advanced error logger engineered to make error logging and understanding significantly more user-friendly.
- Included Jafama: A high-performance math library now incorporated within the Red Core, for better compatibility between mods.
- Stopwatch Enhancements: The Stopwatch feature now boasts the ability to output results directly to a file, in addition to averaging all these results for comprehensive analysis.
- Renamed the
Chronometercomponent to the more intuitiveStopwatchfor improved user understanding. - The Stopwatch feature has been refined to display outputs in milliseconds, accurate up to two decimal places.