[PlutoComponent]Removing components using a token should have the same semantics as removing individual components[PlutoComponent]Made the addition and removal of components hookable before mount events are fired
[SDK]CombinedPlutoFramebuffer,PlutoMesher,PlutoShaderandPlutoTextureintoPlutoRender- Unified the package structure
[SDK]Added the license text to all source files to conform with the MIT license requirementsplutoengine-demos/jsr-cloneAdded a proper license file for the music
[SDK]The libraries now always reference natives for all architectures[SDK]ReplacedNEXT_RELEASE_DRAFT.mdwith an issue tracker[PlutoAudio]Partial rewrite and support for managed sound effectsplutoengine-demos/Added thejsr-clonedemo[PlutoSpritesheet]RenamedTemporalSprite#getSideCounttogetFrameCount
[PlutoGUI]Added support for bitmap fonts[PlutoGUI]Generalized the font renderer APIplutoengine-demos/Removed third-party fonts[PlutoRuntime]TheModLoadercomponent is now opaque, pre-added mods are now specified when creating the token[PlutoRuntime]Added a linting annotation toLogger#logf[PlutoRuntime]Fixed a bug where creating relative resource paths from URIs was not possible[PlutoLib]FixedtoRGBAinHSBandHSBA[PlutoLib]AddedBasicInterpolation[PlutoSpritesheet]Addedrecolor(IRGBA)toRectangleRenderer2DandRenderer2D[PlutoSpritesheet]AddedTemporalSpriteandOrientedSprite
[PlutoComponent]Added support for dependencies and strengtened type checks[PlutoComponent]RemovedIComponentas it was redundant toAbstractComponent[Pluto*]Removed JSR 305 annotations in favor of JetBrains annotations[Pluto*]Removed theConstantExpressionannotation in favor ofContract[PlutoRuntime]MovedThreadSensitivetoorg.plutoengine.address[PlutoAudio]Transformed into a PlutoLocalComponent[PlutoAudio]IAudioStreamis nowAutoCloseable[PlutoCore]InputBusis now tied to a specificDisplayinstead of searching for one in the Local[PlutoCore]SeparatedMouseandKeyboardfromInputBusinto child components[PlutoCore]Added aninit()method that gets called before entering the main loop
plutoengine-demos/basic-applicationMade the gradient in the fragment font shader rotatable
[PlutoMesher]Partial rewrite- Removed
VecArray - Reduced pointless abstraction
- Creation and destruction no longer logged
- Removed
[PlutoGUI]Complete rewrite of the GUI library[Pluto*]Unified the cleanup methods of all OpenGL object classes toclose[PlutoLib]New dependency:joml-primitives[PlutoLib]Now has amodule-info.java[PlutoLib]Now uses JetBrains annotations instead of JSR 305[PlutoDisplay]Removed theflippedword from all buffer functions[PlutoRuntime]Fixed opening .zip filesystems[PlutoShader]AddedUniformArrayFloat,UniformArrayRGBA,UniformArrayVec2,UniformArrayVec3,UniformArrayVec4[PlutoRuntime]SmartSeverity.MODULE_CHECKnow correctly uses the standard output instead ofstderr.
[PlutoRuntime]Fixed several resource filesystem bugs
[PlutoSpritesheet]Added a constructor toPartialTextureSpritethat initializes the spritesheet tonull
[PlutoRuntime]Fixed module load ordering
[PlutoRuntime]Implemented optionalResourceFileSystemfeatures
[SDK]Extensions are now published via GitHub actions
[SDK]Created a new extension project category[PlutoUSS2]Now an extensionPlutoLibno longer depends onPlutoUSS2
[PlutoGameObject]ReimplementedRAIDas a Pluto extension
[SDK]Jar sources and JavaDoc are now published[PlutoRuntime]Modobjects now properly contain the version number
- Version bumped to 2022
[SDK]Maven version is now properly set again
[SDK]Restructured the repository- All build scripts are now written in Kotlin
- Added runnable examples
- Upgraded to Java 17 to take advantage of new language features and a more efficient JVM
- The repostiory now contains examples
- Moved all classes to the
org.plutoenginepackage - Removed the prepackaged JVM wrapper introduced in the previous alpha
as it caused numerous issues
- In the future, JDKs will be packaged with the SDK
[PlutoComponent]Added PlutoComponent as a new module[PlutoLib]PlutoLibnow depends onPlutoComponent
[PlutoUSS2]Added USS2 as a new module[PlutoLib]PlutoLibnow depends onPlutoUSS2
[PlutoLib]Greatly simplified the API and moved PlutoEngine specific classes toPlutoRuntime- Moved the module system to
PlutoRuntime- Removed
ResourceSubscriber,
- Removed
- Removed
cz.tefek.pluto.io.pluto.pp - Removed
RAID - Moved
Logger,OutputSplitStreamtoPlutoRuntime - Removed
Severity, useSmartSeverityinstead - Removed
TextIn,TextOut,ResourceImageandResourceInputStream- Use Java's NIO instead
- Removed
StaticPlutoEventManageras the implementation was too obscure- The module system now uses its own event management
- Removed the
EventDataclass
- Moved the module system to
[PlutoRuntime]Added PlutoRuntime as a new module- Completely rewrote the module system
- Removed support for external mods as the feature needs a complete overhaul
- Revamped resource system now based on NIO
- Moved the logging system from
PlutoLibtoPlutoRuntime - Made
OutputSplitStreampublic as it is now reusable - Added the Version API
- Added the
IVersioninterface- Added support for version objects
- As a result, all fields in
Plutoexcept the version string are no longer compile-time constants
- Added the
- Added the
@ConstantExpressionannotation
- Completely rewrote the module system
[PlutoDisplay]RenamedPlutoStatictoPlutoDisplay- Added the
ModGLFWvirtual module DisplayErrorCallbackand simplified the callbacks inDisplay
- Added the
[PlutoCommandParser]Module discontinued as a part of PlutoEngine, it will still be developed seprately[PlutoTexturing]Renamed toPlutoTexture- Removed
Texture#load(String)andTexture#load(String, MagFilter, MinFilter, WrapMode...)
- Removed
[PlutoLib]The transitive dependency JOML is now provided byPlutoLibinstead ofPlutoStatic[PlutoLib]Created a simple Color API[PlutoLib]Added the 8-bit RGBAColorclass as a counterpart to AWT'sColorclass[PlutoLib]Added theRGBAandRGBsingle precision float color objects[PlutoLib]Added the respectiveIRGBAandIRGBread-only interfaces[PlutoLib]Added theHSBAandHSBsingle precision float color objects[PlutoLib]Added methods to convert between HSBA, RGBA, HSB and RGB[PlutoShader]Added theUniformRGBAandUniformRGBshader uniform types
[PlutoCore]MadePlutoApplication's constructor protected[PlutoLib]MiniTimeParseExceptionno longer contains a hardcoded String message
build.gradleExtracted the version numbers into separate variablesbuild.gradle[experimental]gradlewshould now automatically download JDK11 when neededbuild.gradleUpdated the build scripts and added source Maven publication[PlutoLib]Renamed thecz.tefek.pluto.eventsystempackage tocz.tefek.pluto.event- Moved all subpackages
[PlutoLib]Minor code cleanup incz.tefek.pluto.modloader.event[Pluto]MovedTPLfromcz.tefek.pluto.tpltocz.tefek.pluto.io.tpl[PlutoMesher]Renamed all occurrences ofattribtoattribute- Renamed
VertexArray#createArrayAttribtoVertexArray#createArrayAttribute - Renamed
VertexArray#getVertexAttribstoVertexArray#getVertexAttributes
- Renamed
[PlutoCore]MadePlutoApplication.StartupConfigfields private, options can now only be modified only through public setters[PlutoLib]Added theThreadSensitiveannotation[PlutoLib]RenamedMiniTimeCouldNotBeParsedExceptiontoMiniTimeParseException[PlutoCore]RefactoredInputBusand added several convenience methods[PlutoCore]Refactored input callbacks
[PlutoStatic]Slight cleanup in theDisplayandDisplayBuilderclasses
[PlutoLib#cz.tefek.pluto.io.logger]Refactored the Logger subsystem- Renamed
Logger#logExceptiontoLogger#logto match the rest of log methods and updated references to this method accordingly - Streamlined
StdOutSplitStreamandStdErrSplitStreaminto a more generalizedOutputSplitStream Logger's output filenames now look cleaner withlog--YYYY-MM-DD--HH-MM-SS.txt[Logger#setup]can now throwIOException[PlutoCore]As a result,[PlutoApplication#run]can now throwException
- Renamed
[PlutoLib]Updated JavaDoc inResourceAddress,TPL,TPNImage[PlutoLib]Code cleanup inMiniTime,TPL[PlutoLib]DeprecatedTPL#load(String)in favor ofTPL#load(ResourceAddress),TPL#load(File)andTPL#load(Path)[PlutoTexturing]Deprecated theStringvariant ofTexture#loadto reflect this change[PlutoSpritesheet]Removed the usage of this method inDisposablePlaceholderSprite
[PlutoLib]Added an option to flip loaded images withTPL#loadImageSpecialand added respectiveTPL#loadSpecialfor everyTPL#load[PlutoLib]RemovedTPJImage[PlutoLib]RemovedTPL#loadPixels[PlutoCore]UpdatedGLFWImageUtilto remove the usage ofTPJImage
[PlutoCore][PlutoApplication]now properly closes theLoggeron exit[PlutoLib]Various typo fixes[Pluto*]DeprecatedSeverityforSmartSeverityand replaced all usages[Pluto*]ReplacedCRLFwithLFin all Java source files