Tags
Creators
Details
Licensed MPL-2.0
Published 4 years ago
All versions
2.0.0
Release
NeoForge 26.23 weeks ago 122
Compatibility
Minecraft: Java Edition
26.2
Platform
NeoForge
Supported environments
Server-side
Singleplayer
Changes
Changelog
Version
2.0.0
Changes
API
- Performed a general cleanup across the entire mod, bringing it in line with modern modding practices
- Added
SmartBrainBuilderand extracted the various Brain-construction methods to it.SmartBrainOwnerextends it by default, but extracting it now means you can have an external class contain your AI implementation if wanted with minimal additional effort - Added
BehaviourUtil- a helper class forBehaviorControlrelated methods - Added
ExtendedBehaviour#tryExpire- a method to allow for graceful expiration of behaviours when switchingActivities - Added
ExtendedSensor#onlyScanIf- an optional condition for sensors to only scan if the condition is met - Users no longer need to tick the brain, SBL ticks it automatically for you (unless you override
customServerAIStepin yourmob) - Users no longer need to return a
SmartBrainProviderorSmartBraininstance in your entity class. SBL creates it automatically for you - Moved over to Jspecify's Nullability annotations per the new industry standard. See [here][https://jspecify.dev] for more information
- Merged
SetRandomFlyingTargetandSetRandomHoverTargetintoSetRandomFlyTarget - Renamed
ExtendedBehaviour#doStartChecktocanStart - Renamed
SBLLoadertoSBLPlatform - Renamed
SBLConstants#LOADERtoSBLConstants#PLATFORM - Removed
EntityRetrievalUtil#streamEntities- Its benefits just weren't worth the confusion it caused - Removed
EntityRetrievalUtil#findEntities- It only served to offer a 'max' entity short-circuit, which has now been built into the other methods - Removed
BrainUtil#forEachBehaviour - Changed
GroupBehaviour#getBehavioursfrom anIteratorto anIterable - Added
GroupBehaviour#addto allow for manually adding individual behaviours to aGroupBehaviour - Added
BrainBehaviourPredicate#isChildOfBehaviourhelper method - Renamed the
net.tslat.smartbrainlib.objectpackage tonet.tslat.smartbrainlib.library.object - Moved
BrainBehaviourConsumer,BrainBehaviourPredicate,ToFloatBiFunction, andTriPredicatetonet.tslat.smartbrainlib.library.interfaces - Made
ExtendedTargetingConditionsextendBiPredicate - Renamed
FreePositionTrackertoExactPositionTracker - Renamed
MemoryTest#hasNoMemoriestoMemoryTest#noMemories - Renamed
MemoryTest#builder(int)toMemoryTest#sized(int) - Renamed
BrainActivityGrouptoActivityBuilder - Renamed
EntityFilteringSensortoNearestVisibleEntityFilteredSensor - Renamed
ExtendedBehaviour#runForBetweento#runFor - Renamed
ExtendedBehaviour#cooldownForBetweento#cooldownFor - Renamed the generic
Ttype across all of SBL's brain-related classes toBOfor consistent and clear type understanding - Bubbled up polymorphic overloads of self-returning methods across behaviours and sensors
- Ensured consistency of generic type ordering across all of SBL's brain-related classes
- Added
BreezeSpecificSensor - Updated
ExtendedBehaviour#getMemoryRequirementsto use theMemoryConditioninterface that Mojang added - Renamed
SBLShufflingListtoWeightedShuffleableList - Removed
SeekRandomNearbyPosition
Internal
- Greatly improved the Javadocs in
EntityRetrievalUtil - Converted all Javadocs to Markdown, per Java 25's new standard
- Reorganised the boilerplate/example code
- Added
package-infodeclarations to each package for more consistent and cleaner API usage - Significantly overhauled the Javadocs across the entire mod
- General code cleanup and improvements
- Implemented pre-collapsed code sections for boilerplate code, to further improve code clarity
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:PuyPazRT:bgCj57IJ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:PuyPazRT:bgCj57IJ"
}

