Amethyst Core (紫晶核心)
欢迎来到紫晶核心,一个专注于建立魔法主题模组的库模组!它目前为【紫晶注能】(
点击这里 查看更多详细信息,以及源代码中的KDoc。
紫晶核心有很多功能,包括但不限于:
* 实现自己的修改器系统;与《Minecraft》的附魔系统并行的替代方案
* 创建 _紫晶注能_ 的扩展
* 创建与 _紫晶注能_ 兼容的独特魔法模组
* 实现一致且自动同步的配置系统
* 制作具有各种能力的魔法魔杖
* 构建模块化的 _饰品_
* 轻松注册自定义物品模型,类似三叉戟
* 注册到一个持续事件注册表
* 轻松构建并注册对战利品表的附加内容
* 生成跟踪玩家并在玩家屏幕上显示所需位置的粒子
* 注册想要随时间触发的持久效果,无需在自定义滴答代码中跟踪效果
还有更多!
修改器
修改器框架是一个灵活且可扩展的系统,设计为与原版附魔系统并行。修改器旨在解决我发现的附魔的两个最大问题:它们很容易被移除,并且它们不内部化它们的功能(除了一些伤害方法)。附魔也比他们可能会更无聊,用一个简单的数字显示它们的层级。修改器旨在解决所有这些问题!
* 修改器设计为永久性的,更像是修饰词。例如,磨石不能移除它们。
* 修改器内部化它们的功能,并且可以作为一个单元调用,而不是逐个调用。
* 修改器通过“家族树”行动,可以使用有趣的层次。想象一把剑从“生锈”的到“闪闪发光”的到“闪闪发光”的等等。
_该库提供了显示修改器的内置辅助方法_
查看上面的wiki链接以获取有关这些功能的更多详细信息。一旦实现,修改器系统几乎可以做任何事情。_紫晶核心_ 内置的 `AugmentModifier` 可以做从影响法力消耗和冷却时间,到改变法术伤害或范围,甚至触发高级效果,比如在成功施放任何法术时影响施法者周围 12 个方块半径内的所有生物的凋零。
修改器可以简单到用于传递原版 `AttributeModifiers` 的容器,也可以比上面描述的 `AugmentModifier` 复杂得多。如果需要,它们甚至可以纯粹用于风味!
魔法模组实用程序
_紫晶核心_ 包含了构建类似 _紫晶注能_ 风格魔法模组所需的一切。但是,这个库不包括任何制作或进度系统。这取决于你!您可以按照 _紫晶注能_ 的方式进行,使用灌输配方和级别增强的权杖,或者制作您自己独特的系统。可能是血之仪式?自然主题的魔法?一切取决于你。
#### 权杖
包含用于构建各种 _紫晶注能_ 风格权杖的框架,从最简单的 `AbstractScepterItem` 您可以朝任何方向发展,到几乎完全实现了创建您自己的与 _紫晶注能_ 兼容的权杖的 `DefaultScepterItem`。
#### 增强
构建用于与权杖一起使用或添加到饰品和装备的增强附魔。提供用于高级功能的实用程序,例如被动滴答效果,装备效果等。
#### 饰品
用于构建与增强系统兼容的 _饰品_ 的实用程序。正如在 _紫晶注能_ 中所见,这允许模块化的饰品和物品,并不限于预定义的益处。
#### 基
截图:
Amethyst Core 1.5.0+1.20.1
Amethyst Core 1.4.10+1.20.1
Amethyst Core 1.4.9+1.20.1
* Add getTag() back
* Impl new Fzzy Core 0.5.0 modifier defaults methods
* Low mana messages now send to the action bar by default (middle fo the screen messages just above the hotbar)
Amethyst Core 1.4.8+1.20.1
Amethyst Core 1.4.7+1.20.1
Amethyst Core 1.4.6+1.20.1
Amethyst Core 1.4.5+1.20.1
* Added new living entity attribute Mana Regeneration
* Tweaked the base scepter classes with updated active spell getting
* Added new `checkCanUse` impl to the base scepters to avoid infinite use of 1 mana spells.
* `SlashAugment` uses `SpellDamageSource` now
* Added `amethyst_core:any" as a possible input to the SpellCriterion
Amethyst Core 1.4.4+1.20.1
Amethyst Core 1.4.3+1.20.1
Amethyst Core 1.4.2+1.20.1
Amethyst Core 1.4.1+1.20.1
* Added new integration with Spell Power Attributes, for adding spell power attributes if SPA is loaded.
* Added special dual-purpose methods for Cooldown, cirtical chance, and critical damage. Adds wither SPA or AC attributes with appropriately scaled values depending on if SPA is loaded or not.
* Player Experience attribute now removes it's bonus if experience is removed using the addExperience method, in an effort to balance "Feedback loops" from mods like Spelunkery
Amethyst Core 1.4.0+1.20.1
* Updated with new Fzzy Core 0.3.0 modifier system implementation.
* Improved memory usage.
* Removed ModifyModifierEvent in RegisterModifiers, as it is no longer needed for innate modifiers.
* Implemented better flavor test generation.
* Attempt a fix at a constant [amount] of XP per tick, presumably caused by some source adding 0 XP repeatedly.
amethyst_core-1.3.0+1.20.1
### Fixes
* Fixed tooltips not updating right away on dedicated client/server environments when you add a new modifier.
* Fixed some spells being shown as disabled even when not.
### Changes
* Added new fzzy-config spell configuration system, with built-in back-compatibility to the old method of implementing AugmentStats.
### Additions
* Added interop with Spell Power Attributes. Spells of the appropriate types (fire, ice, etc) will be empowered by the corresponding spell powers.
Amethyst Core 1.2.2+1.20.1
* Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
Amethyst Core 1.2.2+1.19.4
* Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
Amethyst Core 1.2.2+1.19.3
* Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
Amethyst Core 1.2.2+1.19
* Change how cooldown and mana cost attributes work so positive changes reduce duration, and negative modifiers increase duration, to make them more intuitive. Previously a reduction in attribute reduced CD/MC, but it shows as red in MC, implying that you are getting a bad effect.
Amethyst Core 1.2.1+1.20.1
* Added switch for scepters to reject spells they shouldn't be able to take.
* Added more interfacing for entities in prep for the coming combi-update.
* Fallback spells no longer re-apply when you craft a scepter to the next tier.
* removed a mixin duplicated from fzzy-core
Amethyst Core 1.2.1+1.19.4
* Added switch for scepters to reject spells they shouldn't be able to take.
* Added more interfacing for entities in prep for the coming combi-update.
* Fallback spells no longer re-apply when you craft a scepter to the next tier.
* removed a mixin duplicated from fzzy-core
Amethyst Core 1.2.1+1.19.3
* Added more interfacing for entities in prep for the coming combi-update.
* Fallback spells no longer re-apply when you craft a scepter to the next tier.
* removed a mixin duplicated from fzzy-core
Amethyst Core 1.2.1+1.19
* Added more interfacing for entities in prep for the coming combi-update.
* Fallback spells no longer re-apply when you craft a scepter to the next tier.
* removed a mixin duplicated from fzzy-core
Amethyst Core 1.2.0+1.19.3
### Changes
* Changed `AugmentScepterItem` implementation, flattening the class path.
* the `ModifySpellEvent` now takes the spell itself as additional context.
### Additions
* Added `AugmentSwordItem` and `AugmentMiningItem` to hook into for various types of tools that can also cast spells.
* Integrated scepters with the _Pack It Up!_ Magicpack.
amethyst_core-1.2.0+1.19
### Changes
* Changed `AugmentScepterItem` implementation, flattening the class path.
* the `ModifySpellEvent` now takes the spell itself as additional context.
### Additions
* Added `AugmentSwordItem` and `AugmentMiningItem` to hook into for various types of tools that can also cast spells.
* Integrated scepters with the _Pack It Up!_ Magicpack.
Amethyst Core 1.1.0+1.19.3
* Added three scepter events. `ModifyModifiersEvent` for modifying the collection of scepter modifiers considered in the spell cast, ModifySpellEvent for modifying what the spell is doing, what spell is cast, or stopping spell casting completely, and `AfterSpellEvent` for hooking into a successful spell cast like `postHit` in an MC Item class.
* Updated ScepterAugment configs to have a PvPmode
* Generalized how spellcasting works, enabling spells to be cast by non-player entities (in most cases)
* Added methods for randomly rolling scepter modifiers
* Slash augments updated to include PvpMode support
* Scepter Tiers no longer a basic int, now a class that wraps a specific item tag, scepters are sorted via this tag now.
* Added Common Protection API support to prevent misuse of spells inside claims.
* Implement new helper typing system in FC 0.2.0
Amethyst Core 1.1.0+1.19
* Added three scepter events. `ModifyModifiersEvent` for modifying the collection of scepter modifiers considered in the spell cast, ModifySpellEvent for modifying what the spell is doing, what spell is cast, or stopping spell casting completely, and `AfterSpellEvent` for hooking into a successful spell cast like `postHit` in an MC Item class.
* Updated ScepterAugment configs to have a PvPmode
* Generalized how spellcasting works, enabling spells to be cast by non-player entities (in most cases)
* Added methods for randomly rolling scepter modifiers
* Slash augments updated to include PvpMode support
* Scepter Tiers no longer a basic int, now a class that wraps a specific item tag, scepters are sorted via this tag now.
* Added Common Protection API support to prevent misuse of spells inside claims.
* Implement new helper typing system in FC 0.2.0
amethyst_core-1.0.4+1.19.3
### Fixes
* Fixed missing class exception in a PlayerEntity mixin
amethyst_core-1.0.4+1.19
### Fixes
* Fixed missing class exception in a PlayerEntity mixin
amethyst_core-1.0.4+1.18.2
### Fixes
* Fixed missing class exception in a PlayerEntity mixin
amethyst_core-1.0.3+1.19.3
### Fixes
* Fixed lore books not syncing the spell shown when the book is read for the first time.
amethyst_core-1.0.3+1.19
### Fixes
* Fixed lore books not syncing the spell shown when the book is read for the first time.
amethyst_core-1.0.3+1.18.2
### Fixes
* Fixed lore books not syncing the spell shown when the book is read for the first time.
amethyst_core-1.0.2+1.19.3
### Fixes
* Fixed issue where the fallback spell (Magic Missile in AI) could be continually re-applied to a scepter by changing spells
### Additions
* If a scepter has no spells for some reason, it will now display "Active Spell: None"
amethyst_core-1.0.2+1.19
### Fixes
* Fixed issue where the fallback spell (Magic Missile in AI) could be continually re-applied to a scepter by changing spells
### Additions
* If a scepter has no spells for some reason, it will now display "Active Spell: None"
amethyst_core-1.0.2+1.18.2
### Fixes
* Fixed issue where the fallback spell (Magic Missile in AI) could be continually re-applied to a scepter by changing spells
### Additions
* If a scepter has no spells for some reason, it will now display "Active Spell: None"
amethyst_core-1.0.1+1.18.2
### Fixes
* Fixed missing lang key for "None" active scepter spell
amethyst_core-1.0.1+1.19
### Fixes
* Fixed missing lang key for "None" active scepter spell
amethyst_core-1.0.1+1.19.3
### Fixes
* Fixed missing lang key for "None" active scepter spell
amethyst_core-1.0.0+1.19.3
## Fzzy Core Refactor update
As of version 1.0.0, Amethyst Core is no longer standalone. I broke the library apart into more refined and focused pieces. Amethyst Core is now a expansion library built off my new base library [Fzzy Core](https://github.com/fzzyhmstrs/fc)
Amethyst Core is the Magic Mod piece of that refactoring process. Many of the functions it contained are now in Fzzy Core, but it retains:
* Scepters: The abstract scepters and the augment scepter framework is still in place
* Augment Modifiers: Amethyst Core is the home for the scepter-relevant Augment Modifiers still. The abstract modifier framework is moved to FC.
* AbstractAugmentBookItem and AbstractAugmentJewelryItem both retained, as they are important pieces of the Amethyst Imbuement style magic system.
#### _Going forward, I will also no longer be embedding AC. This is because I am getting closer to releasing more content mods that utilize the FC family of libraries, so don't want multiple embedded copies to be wasting space, potentially version fighting, etc._
amethyst_core-1.0.0+1.19
## Fzzy Core Refactor update
As of version 1.0.0, Amethyst Core is no longer standalone. I broke the library apart into more refined and focused pieces. Amethyst Core is now a expansion library built off my new base library [Fzzy Core](https://github.com/fzzyhmstrs/fc)
Amethyst Core is the Magic Mod piece of that refactoring process. Many of the functions it contained are now in Fzzy Core, but it retains:
* Scepters: The abstract scepters and the augment scepter framework is still in place
* Augment Modifiers: Amethyst Core is the home for the scepter-relevant Augment Modifiers still. The abstract modifier framework is moved to FC.
* AbstractAugmentBookItem and AbstractAugmentJewelryItem both retained, as they are important pieces of the Amethyst Imbuement style magic system.
#### _Going forward, I will also no longer be embedding AC. This is because I am getting closer to releasing more content mods that utilize the FC family of libraries, so don't want multiple embedded copies to be wasting space, potentially version fighting, etc._
amethyst_core-1.0.0+1.18.2
## Fzzy Core Refactor update
As of version 1.0.0, Amethyst Core is no longer standalone. I broke the library apart into more refined and focused pieces. Amethyst Core is now a expansion library built off my new base library [Fzzy Core](https://github.com/fzzyhmstrs/fc)
Amethyst Core is the Magic Mod piece of that refactoring process. Many of the functions it contained are now in Fzzy Core, but it retains:
* Scepters: The abstract scepters and the augment scepter framework is still in place
* Augment Modifiers: Amethyst Core is the home for the scepter-relevant Augment Modifiers still. The abstract modifier framework is moved to FC.
* AbstractAugmentBookItem and AbstractAugmentJewelryItem both retained, as they are important pieces of the Amethyst Imbuement style magic system.
#### _Going forward, I will also no longer be embedding AC. This is because I am getting closer to releasing more content mods that utilize the FC family of libraries, so don't want multiple embedded copies to be wasting space, potentially version fighting, etc._
amethyst_core-0.4.3+1.19.3
### Additions
* Added advancement criterion for casting scepter spells
* Added advancement criterion for using knowledge books
### Changes
* Port to 1.19.3.
### Fixes
* None.
amethyst_core-0.4.3+1.19
### Additions
* Added advancement criterion for casting scepter spells
* Added advancement criterion for using knowledge books
### Changes
* None.
### Fixes
* None.
amethyst_core-0.4.3+1.18.2
### Additions
* Added advancement criterion for casting scepter spells
* Added advancement criterion for using knowledge books
### Changes
* None.
### Fixes
* None.
amethyst_core-0.4.2a+1.18.2
### Additions
*
### Changes
* Updated fabric API version for updated loot API, and updated internal loot API to match to it.
### Fixes
*
amethyst_core-0.4.2+1.19
### Additions
* Added a toString() method to Ticker for better printlns
### Changes
*
### Fixes
* Removed some errant printlns
* Fixed PersistentEffectHelper being not-thread-safe and liable to concurrent modification exceptions.
amethyst_core-0.4.2+1.18.2
### Additions
* Added a toString() method to Ticker for better printlns
### Changes
*
### Fixes
* Removed some errant printlns
* Fixed PersistentEffectHelper being not-thread-safe and liable to concurrent modification exceptions.
amethyst_core-0.4.1+1.19
### Additions
* Added github changelog
* Added hlper function findSpawnPos to the SummonEntityAugment that helps with finding a valid spawn for a summon.
### Changes
*
### Fixes
* Fixed issue with an empty scepter crashing the game when you try to change (nonexistant) spells
amethyst_core-0.4.1+1.18.2
### Additions
* Added github changelog
* Added hlper function findSpawnPos to the SummonEntityAugment that helps with finding a valid spawn for a summon.
### Changes
*
### Fixes
* Fixed issue with an empty scepter crashing the game when you try to change (nonexistant) spells
amethyst_core-0.4.0+1.19
- Added `removeTickUppable()` to the `EventRegistry` to allow re-registration of a ticker that is no longer needed.
- Added `useAfterWriting()` method to `AbstractAugmentBookItem` to allow for secondary actions after the book has been "read".
- add a `uv()` method to the `SpellType` Enum, which is used in some rendering. May be deprecated for a book-specific texture approach.
Fixes:
- `PlaceItemAugment` is now server-sided. This makes it slightly less accurate than MC's client-first approach, but avoids weird cooldown and other bugs with the networking previously involved.
Changes:
- `AbstractAugmentBookItem` tooltip now uses translatable text more effectively.
- `AbstractConfigDisableEnchantment`'s enabled is now a var, allowing for re-evaluation of enabled state. This allows for the client to update it's enabled statuses when joining a server with a different config setup then on their local machine.
amethyst_core-0.4.0+1.18.2
- Added `removeTickUppable()` to the `EventRegistry` to allow re-registration of a ticker that is no longer needed.
- Added `useAfterWriting()` method to `AbstractAugmentBookItem` to allow for secondary actions after the book has been "read".
- add a `uv()` method to the `SpellType` Enum, which is used in some rendering. May be deprecated for a book-specific texture approach.
Fixes:
- `PlaceItemAugment` is now server-sided. This makes it slightly less accurate than MC's client-first approach, but avoids weird cooldown and other bugs with the networking previously involved.
Changes:
- `AbstractAugmentBookItem` tooltip now uses translatable text more effectively.
- `AbstractConfigDisableEnchantment`'s enabled is now a var, allowing for re-evaluation of enabled state. This allows for the client to update it's enabled statuses when joining a server with a different config setup then on their local machine.
amethyst_core-0.3.3+1.19
- Changed how spell disabling works from re-registration, which was causing multiplayer login issues, to a spell ability disable. Spells simply won't cast if they are disabled. The tooltip also shows the spell red and struck out with a "(disabled)".
- The active spell message now also shows the red struckout disabled naming when switching to a disabled spell.
Additions:
- Added an `AcText` class that allows for cross-compatibility of Text instances without needing to, for example, continuously fix the switch between `TranslatableText` and `Text.translatable`
- Added a `AbstractConfigDisableEnchantment` that allows vanilla enchantments to also be disabled (and show the disabled text in tooltip).
- Added methods for disabling trinket augments as well.
amethyst_core-0.3.3+1.18.2
- Changed how spell disabling works from re-registration, which was causing multiplayer login issues, to a spell ability disable. Spells simply won't cast if they are disabled. The tooltip also shows the spell red and struck out with a "(disabled)".
- The active spell message now also shows the red struckout disabled naming when switching to a disabled spell.
Additions:
- Added an `AcText` class that allows for cross-compatibility of Text instances without needing to, for example, continuously fix the switch between `TranslatableText` and `Text.translatable`
- Added a `AbstractConfigDisableEnchantment` that allows vanilla enchantments to also be disabled (and show the disabled text in tooltip).
- Added methods for disabling trinket augments as well.
amethyst_core-0.3.1+1.19
- Updated AugmentStats configs to V1 to add an "enabled" boolean. This allows spells to be disabled.
- Added helper function for checking if a spell is disabled with a config.
- Fixed interaction issue with pehkui.
amethyst_core-0.3.1+1.18.2
- Updated AugmentStats configs to V1 to add an "enabled" boolean. This allows spells to be disabled.
- Added helper function for checking if a spell is disabled with a config.
- Fixed interaction issue with pehkui.
amethyst_core-0.3.0+1.19
- Added a `PlayerCreatable` interface for use with summoned entities
- Added a `CustomDamageSource` util with some custom damage sources
- augments now level up their enchantments as they level up, so the current level of a spell is shown
- scepter items can now accept attribute modifiers (like swords etc)
Changes:
- Added Ice and Elemental type interfaces
- knowledge books now have a "lore_type" nbt
- magic missile entities hit box shrunk to match AI entity hitbox sizes (now less likely to collide with block corners etc)
- Added an "initialization" nbt check in scepters so augments, modifiers, etc only add once
- Knowledge books now have an open `getRandomBookAugment` that can take a custom impl
Fixes
- Fixed particle positioning on missile entities
- Switching spells no longer relies on player pose, so it works when the player is crouched for other reasons besides sneaking (like underneath a slab)
amethyst_core-0.3.0+1.18.2
- Added a `PlayerCreatable` interface for use with summoned entities
- Added a `CustomDamageSource` util with some custom damage sources
- augments now level up their enchantments as they level up, so the current level of a spell is shown
- scepter items can now accept attribute modifiers (like swords etc)
Changes:
- Added Ice and Elemental type interfaces
- knowledge books now have a "lore_type" nbt
- magic missile entities hit box shrunk to match AI entity hitbox sizes (now less likely to collide with block corners etc)
- Added an "initialization" nbt check in scepters so augments, modifiers, etc only add once
- Knowledge books now have an open `getRandomBookAugment` that can take a custom impl
Fixes
- Fixed particle positioning on missile entities
- Switching spells no longer relies on player pose, so it works when the player is crouched for other reasons besides sneaking (like underneath a slab)
amethyst_core-0.2.3+1.19
- Fixed issue with `MissileEntity` collision
- Fixed issues with Modifiers not appearing correctly in tooltips
- Modifiers now appear in REI/EMI tooltips
- Added two new `ModifierHelper` functions for better generation of tooltips.
amethyst_core-0.2.3+1.18.2
- Fixed issue with `MissileEntity` collision
- Fixed issues with Modifiers not appearing correctly in tooltips
- Modifiers now appear in REI/EMI tooltips
- Added two new `ModifierHelper` functions for better generation of tooltips.
amethyst_core-0.2.2+1.19
- improved specter initialization process to include an inventoryTick call.
- Fixed issue where magic type NBT wasn't initialized on non-crafted scepters
- improved stability of the Dustbin
amethyst_core-0.2.2+1.18.2
- improved specter initialization process to include an `inventoryTick` call.
- Fixed issue where magic type NBT wasn't initialized on non-crafted scepters
- improved stability of the Dustbin
amethyst_core-0.2.1+1.19
- Fixed an issue where versioned config jsons were not being updated to the correct config namespace
amethyst_core-0.2.1+1.18.2
- Fixed an issue where versioned config jsons were not being updated to the correct config namespace
amethyst_core-0.2.0+1.19
- Fixed concurrent modification issue with certain scepter initialization runs.
- Fixed some calls to Translatable Texts.
Changes:
- Added a V2 player particle implementation. Player-tracking particles now track players in all three dimesions when viewing first-person, and still maintain XZ plane when third person.
- Added "automatic" modifier consumers that are accepted on every successful spell cast.
- Minimum mana cost is now 0 in the ScepterHelper.
- Consumers now type-agnostic in the AugmentEffect, allowing for extensibility on the consumer types.
- PlaceItemAugment now more open for easier subclass implementation.
- MIT License now included in source files.
amethyst_core-0.2.0+1.18.2
- Fixed concurrent modification issue with certain scepter initialization runs.
- Fixed some calls to Translatable Texts.
Changes:
- Added a V2 player particle implementation. Player-tracking particles now track players in all three dimesions when viewing first-person, and still maintain XZ plane when third person.
- Added "automatic" modifier consumers that are accepted on every successful spell cast.
- Minimum mana cost is now 0 in the ScepterHelper.
- Consumers now type-agnostic in the AugmentEffect, allowing for extensibility on the consumer types.
- PlaceItemAugment now more open for easier subclass implementation.
- MIT License now included in source files.
amethyst_core-0.1.1+1.19
amethyst_core-0.1.1+1.18.2
amethyst_core-0.1.0+1.19
amethyst_core-0.1.0+1.18.2
1.19 support is on the way!
Also investigating a future port to Quilt for this and for dependent mods like _Amethyst Imbuement_
收录