Changelog
- Removed the
permanentfield fromFireData. - Revamped
FireTypes to be much more flexible. Their new data structure and functionality is as follows:source_settings:fire_source_blocks: A block's ID, a list of block IDs, or a Block Tag defining which blocks use this Fire Type. (i.e, Fire, Campfire, Torch.)supporting_blocks: A block's ID, a list of block IDs, or a Block Tag defining which blocks support this Fire Type on top of them.
damage_settings:damage: The amount of damage to inflict while burning.vulnerable_damageThe amount of damage to inflict while an entity who is vulnerable to this Fire Type is burning.vulnerable_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types are vulnerable to this Fire Type.damage_immune_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types are immune to damage from this Fire Type.
spread_settings:spreads_from_zombie_attack: Whether this Fire Type can be spread to the victim of a burning Zombie's attack.spreads_from_ignite_enchantments: Whether this Fire Type can be spread to the victim of an attack of a burning entity using an enchantment that ignites entities.replaceable_by_other_fire_types: Whether this Fire Type can be replaced by another Fire Type while burning.always_apply_to_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types will always use this Fire Type while burning.cannot_apply_to_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types cannot use this Fire Type.
textures:texture_0: The first texture to use for this Fire Type.texture_1: The second texture to use for this Fire Type, also used for the first-person burning overlay.
particle_settings:smoke_particle: TheParticleOptionsto use for this Fire Type's smoke.large_smoke_particle: TheParticleOptionsto use for this Fire Type's large smoke.smoke_config_predicate: AConfigPredicate, optionally used to dictate whethersmoke_particleandlarge_smoke_particlecan be used.campfire_cosy_smoke_particle: TheParticleOptionsto use for this Fire Type's campfire cosy smoke.campfire_signal_smoke_particle: TheParticleOptionsto use for this Fire Type's campfire signal smoke.campfire_smoke_config_predicate: AConfigPredicate, optionally used to dictate whethercampfire_cosy_smoke_particleandcampfire_signal_smoke_particlecan be used.lava_particle: TheParticleOptionsto use for this Fire Type's lava particle (Used for campfires.)lava_config_predicate: AConfigPredicate, optionally used to dictate whetherlava_config_predicatecan be used.
config_predicate: AConfigPredicate, optionally used to dictate whether this Fire Type can be used.
- Removed the built-in
frozenlib:soul_fireFireType. - Added a builder for Fire Types to make their creation much simpler.
- Added the
FireEventsclass, containing the following Events:SELECT_FIRE_TYPE- Is triggered when an Entity is catching on fire and the FireType is being selected.
- Is used to modify the FireType to be set.
AFTER_FIRE_TYPE_SET- Is triggered after the FireType is set on an Entity.
ON_ENTITY_BURN_TICK- Is triggered each time an Entity is burnt from a fire lingering on them.
SELECT_FIRE_BLOCK_STATE- Is triggered when a Fire block is selecting which BlockState to place as.
- Is used to modify the BlockState to be set.
- Added
ClipGroups.- Clip Groups define a list of blocks that crosshair clipping can pass through, while inside one of their blocks.
- For example, while inside Wilder Wild's Mesoglea, Mesoglea blocks are no longer selected and you can attack entities and place/break blocks as normal.
- Added the
frozenlib:clip_groupdynamic registry.- Each Clip Group simply contains a block's ID, a list of block IDs, or a Block Tag.
- Clip Groups define a list of blocks that crosshair clipping can pass through, while inside one of their blocks.
- Added the
WaterLikeBlockinterface.- Is used to create blocks that have water-like properties, such as Wilder Wild's Mesoglea.
- Can optionally support Bubble Columns.
- Provides different particles and a fog color to use in place of Water's.
- Added the
frozenlib:water_like_typedynamic registry.- Provides a block's ID, a list of block IDs, or a Block Tag that list the blocks within a specific Water-Like Type.
- Provies swimming, splashing, enter, exit, and ambient loop sounds to use for the Water-Like Type.
- Added
ConfigPredicates!- Provides a way to utilize config from a data-driven context.
- These are modeled after Mojang's
BlockPredicates, aiming to be easy to utilize in Data Packs. - Multiple predicate types are available, including:
any_of: Returnstrueif any of the containedConfigPredicatesreturnedtrue.all_of: Returnstrueif all the containedConfigPredicatesreturnedtrue.all_match: Returnstrueif all the containedConfigPredicatesreturned the same value.not: Returnstrueif the containedConfigPredicatereturnsfalse.exists: Returnstrueif the aConfigEntrywith the providedIDexists.true: Always returnstrue.- The primary five predicate types are as follows:
equal_to: Returnstrueif theConfigEntry's value matches thetargetvalue.greater_than: Returnstrueif theConfigEntry's value is greater than thetargetvalue.greater_than_or_equal_to: Returnstrueif theConfigEntry's value is greater than or equal to thetargetvalue.less_than: Returnstrueif theConfigEntry's value is less than thetargetvalue.less_than_or_equal_to: Returnstrueif theConfigEntry's value is less than or equal to thetargetvalue.- These all share the same two fields:
entry: The targetConfigEntry'sID.target: The value the targetConfigEntry's value is being compared with.
- Can be used as a
BlockPredicatevia theasBlockPredicatemethod. - Can be used as a
PlacementFiltervia theasPlacementFiltermethod. - Can be used as a
LootItemConditionvia theasLootConditionmethod. - Can be used as a
ConditionSourcevia theasConditionSourcemethod.
- Added the
ConfigSelectorConfigured Feature, configured withConfigSelectorFeatureConfiguration:config_predicate: TheConfigPredicateto use.feature_if_true: ThePlacedFeatureto be placed ifconfig_predicatereturns true.feature_if_false: ThePlacedFeatureto be placed ifconfig_predicatereturns false.
- Refactored and renamed many worldgen-related classes to be more consistent with Vanilla.
ColumnWithDiskFeatureConfigurationnow uses twoBlockStateProviders instead of aBlockStateand Block Tag.- Renamed the
block_state_providerfield toblock_stateand thestop_when_encountering_unreplaceable_blockfield tostop_at_unreplaceable_blockinColumnFeatureConfiguration. - Removed
FrozenLibGrassColorModifiers, as this functionality is redundant thanks to Enum Extensions in Fabric Loader 0.19+. - Block Sound Type Overwrites have been removed, and replaced with a newer version that utilizes Dynamic Registries.
- We understand this may upset some players, but the Resource Pack functionality would cause sound type desyncs between the server and client.
- The new system will allow players to accomplish the same results, but via Data Pack!
- Added the
SoundTypeOverride, containing the following fields:blocks: A block's ID, a list of block IDs, or a Block Tag that thesound_typeapplies to.sound_type: TheSoundTypeto be used.volume: The volume to use.pitch: The pitch to use.break_sound: The break sound to use.step_sound: The step sound to use.place_sound: The place sound to use.hit_sound: The hit sound to use.fall_sound: The fall sound to use. Notice a pattern?
config_predicate: An optional field, supplying aConfigPredicatethat determines whether the override can be used.
- Added the
frozenlib_sound_type_overrideDynamic Registry. - The
frozenlib_config reloadCommand now provides completion suggestions and requires Game Master permissions to use. - Added the
frozenlib_config_clientCommand, allowing clients to use config commands locally without affecting the server. - Renamed
FrozenClothConfigtoFrozenLibClothConfigGuiHelper. - Added multiple new helper methods to
FrozenLibClothConfigGuiHelper. - Renamed
PlayerStructureStatustoStructureStatus. - Revamped the way
StructureStatuses are handled and sent to the client.- These now rely on Fabric's
Attachmentsystem, ultimately leading to the removal of custom networking & mixins related to syncing them. - Added a debug text entry option to display current statuses.
- These now rely on Fabric's
- Revamped Structure-based Music.
StructureMusicis now serializable and its contents have changed, containing the following fields:structures: A structure's ID or a list of structure IDs thatmusicwill play within.background_music: TheBackgroundMusicto play.must_be_inside_piece: Whether the Player must be located inside aStructurePieceformusicto play.config_predicate: An optional field, supplying aConfigPredicatethat determines whether the music can be played.
- Added the
frozenlib:structure_musicDynamic Registry.
- Added the
frozenlib:controlled_noteParticle Type, which takes an Integer as a parameter to use for the particle's color. - Added colored variants of Smoke and Campfire Smoke Particles, using
ColoredSmokeParticleOptions.- These particles will start off with a tint, and fade back into their Vanilla coloration.
- Removed the
frozenlib:biome_tag_condition_sourceandfrozenlib:optimized_biome_tag_condition_sourceSurface RuleConditionSources, as they are redundant. - Added
SulfurCubeUtilAndEvents, containing the following events:ON_INTERACTON_ARCHETYPE_DATA_REMOVEON_ARCHETYPE_APPLYON_POWER_CHANGEDON_PUSH_SOUND_PLAYEDON_PUSHON_HITON_SQUISH
- Added the
AbstractBlockLikeMob, used to create Mobs that render like Blocks and rotate as they move.- Based upon 26w14a's implementation.
- Renders using the model of the provided
BlockStateit is given.
- Added the
NoOpModel, in cases aLivingEntityRendereris required but noModelis wanted. - Revamped Spotting Icons.
- Refactored all classes into the
entitypackage. - Spotting Icons now render as part of the game's HUD.
- Removed the
frozenlib:spotting_icon_predicateRegistry. - Removed
SpottingIconPredicates. - Spotting Icons now use Fabric's Data Attachment system, using the
SpottingIconsclass.- This class contains methods to add, remove, and check a predicate against its Spotting Icons.
- An Entity can now have multiple Spotting Icons at once.
- Spotting Icons a much more flexible fading system.
- A custom start and end value can now be defined.
- Fades can be used for both the Icon's scale and transparency.
- Refactored all classes into the
- Migrated server texture packets to use Fabric's packet splitter.
- Revamped FrozenLib Cape implementation.
- Migrated to Fabric's Data Attachment system and Render State Data Keys.
- Fixed a bug that caused a Player's FrozenLib Cape to not sync to clients when joining a server.
- Revamped Screen Shake implementation.
- Migrated to Fabric's Data Attachment system and Fabric's Level Tick Event instead of using separate mixins.
- Screen Shakes can now have a "minimum distance", which will override the calculated distance to the Screen Shake if it is lower than this.
- Added a
Builderfor Screen Shakes. - Screen Shakes no longer have separate implementation for Levels and Entities, now being universal and easy to use for both.
- Updated the
frozenlib screenshakecommand and its feedback.
- Revamped Wind implementation.
- Migrated to Fabric's Data Attachment system.
ClientWindManagerhas been removed andWindManageris now used on both the server and client.- Removed the ability and config option to use Wind on the client without a server that has Wind.
WindManagerExtensions now use a registry instead of a list.WindDisturbances have been completely revamped, using Fabric's Data Attachment system and allowing for the creation of customWindDisturbanceTypesfor more dynamic usage.
- Revamped Moving Sound Manager implementation.
- Migrated to Fabric's Data Attachment system.
MovingSoundTypes can now be registered to FrozenLib's newfrozenlib:moving_sound_typeRegistry.- Each
MovingSoundTypehandles the ticking (and optionally removal) of each sound per-entity, similar to the original sound managers. - Thanks to these changes, multiple mixins and duplicate implementations have been removed.
- Added the
frozenlib:moving_sound_managerDynamic Registry. - Removed the Warden Spawn Tracker config option, as the command can now be enabled in Vanilla via launch arguments.
- Refactored the
lootpackage into theitempackage. - Refactored the
recipepackage into theitempackage.
Dependencies
Files
FrozenLib-2.5-mc26.2.jar(1.77 MiB) Primary Download
External resources
Project members

FrozenBlock
Technical information
License
GPL-3.0-only
Client side
required
Server side
required
Project ID

