All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project follows to Ragnarök Versioning Convention.
The method RedLogger#printFramedError
has been renamed to RedLogger#logFramedError
, all usages should be updated before 0.8.
Case
a utility enum for handling checking, applying and enforcing naming conventions, currently supported casing:camelCase
PascalCase
kebab-case
lower_snake_case
UPPER_SNAKE_CASE
- Added
RedLogger#framed
which allows logging lists in a readable manner (e.g., versioning information) - Added
DecimalUtils
a utility class which currently allows for truncating decimal numbers for human reading - Added empty private constructors to hide implicit public ones
- Added
Vector3F
&Vector2F
to the new experimental vector suite
- Improved documentation for
RedLogger#logFramedError
- Renamed
RedLogger#printFramedError
toRedLogger#framedError
- Updated to foojay-resolver 0.8.0
- Updated to gradle-buildconfig-plugin 5.5.0
- Updated to Gradle 8.8
- 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.7.1
- Updated Qodana
- Cleaned up tests
- Updated to org.jetbrains.gradle.plugin.idea-ext 1.1.9
- Use Jabel
- Cleanup buildscript
- General cleanup
- Vectors now uses interfaces for consistent implementations
AABBUtil
a utility class for handling axis aligned bounding boxesAABBUtil#orientAABB
a utility method for orienting a north facing AABB towards anyEnumFacing
allowing 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)
OptiNotFine
now usesMethodHandle
- Minor cleanup
- Updated to RetroFuturaGradle 1.4.1
- 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
Experimental
annotation - 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
MathUtil
is now underutils.math
- Separated
MathUtil
clamping methods into their own classClampUtil
- Changed GroupId from
io.redstudioragnarok
todev.redstudio
- Made
RedLogger#RANDOM
private
- Removed
Stopwatch
it 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
startClientTicker
fromRedCore
to `RedClientTicker - Moved
forceOptiFineFastRenderOff
fromRedCore
toOptiNotFine
- 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
read
andwrite
methods to all vectors that allows for easy networking - Added
int
,short
andbyte
versions ofclampTest
,clampMinFirst
andclampMaxFirst
inMathUtil
- Added
int
versions of the vectors - Added a
Vec2f
constructor for the 2-dimensional vectors - Added a
zero
method 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#printFramedError
will not add empty lines ifwhatNow
and/oradditionalInformation
is 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
newIssueLink
parameter, the old constructor has been deprecated and is due for removal for 0.4 - RedLogger recomfort messages might be more random
- Optimized
RedLogger#printFramedError
it 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
Chronometer
component to the more intuitiveStopwatch
for improved user understanding. - The Stopwatch feature has been refined to display outputs in milliseconds, accurate up to two decimal places.