Origins

Origins

Mod

Players choose an Origin at the beginning of the game to gain benefits and drawbacks

Client and server Adventure

968.0k downloads
1,089 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...
Filter channels...

Changes

  • [apoli] The modifier/modifiers field(s) are now required in the modify_item_cooldown power type
  • [apoli] The tooltip texts in the tooltip power type are no longer wrapped in string when serialized to NBT
  • [origins] Reformatted code style of the /origin command to match the code style in Apoli
  • [origins] Adjusted the text area of the origin window

Fixes

  • [apoli] Fixed class casting issue in offset block condition type
  • [apoli] Fixed ID of the action_on_key_press power type
  • [apoli] Fixed initializing issues with power types
  • [apoli] Fixed abnormal behavior with add_velocity entity/bi-entity action types
  • [apoli] Fixed default offset values of spawn_particles entity action type
  • [apoli] Fixed area_of_effect entity/block action types accepting a positive integer/floating point radius value instead of a non-negative integer/floating point value respectively
  • [apoli] Fixed action_on_block_break power type evaluating its block condition too late (evaluating the block at the mined position after it's been mined)
  • [apoli] Fixed typo in fields for encoding the modify_food power type
  • [apoli] Fixed choice meta action type executing all the defined actions instead of just one
  • [apoli] Fixed give entity action type only working once (per game/server restart) due to the provided item stack not being copied
  • [apoli] Fixed *_inventory entity action/condition types being provided slots that aren't within the bounds of an entity's inventory (or inventory of a power that uses the inventory power type)
  • [apoli] Fixed modify_harvest power type evaluating its block condition too late (evaluating the block at the mined position after it's been mined)
  • [apoli] Fixed attacker damage condition type requiring an entity condition
  • [origins] Fixed not being able to see custom origin layers in the origin screen
  • [origins] Fixed origins:origin item component not setting the player's origin

Changelogs

Power/action/condition types and actions/conditions have been overhauled in this update. There is currently no documentation, but you can check out PR https://github.com/apace100/apoli/pull/254, or take a look at the codebase of Apoli 2.12.0-alpha.13 as a reference

Additions

  • [calio] [For addon developers] Added SerializableDataType#validateValue method for validating the operand type
  • [apoli] Added legacy aliases for meta condition types;
    • and --> all_of
    • or --> any_of
    • chance --> random_chance

Changes

  • [calio] [For addon developers] Deprecated SimpleDataObjectFactory in favor of using DataObjectFactory directly via DataObjectFactory#simple
  • [calio] [For addon developers] Renamed SerializableDataTypeList class to ListSerializableDataType
  • [calio] [For addon developers] Renamed FunctionedFieldImpl class to FunctionedDefaultFieldImpl
  • [calio] [For addon developers] Renamed OptionalFieldImpl class to DefaultedFieldImpl
  • [calio] [For addon developers] Renamed Field#path method to Field#name
  • [calio] [For addon developers] Tweaked field presence check logic in SerializableData$Instance to ensure that the default value of fields are only checked if the field doesn't have a defined value
  • [calio] [For addon developers] Separated setting of defaulted and functioned default fields of SerializableData$Instance (when decoding) to avoid nullability issues with functioned default fields relying on defaulted fields
  • [apoli] Made the *_inventory action/condition types use slot ranges (e.g: hotbar.*, armor.*, etc.)
  • [apoli] Made the keep_inventory power type use slot ranges (e.g: enderchest.*, inventory.*, etc.)
  • [apoli] Renamed the simple power type to dummy (and added its old name as an alias)
  • [apoli] Renamed the active_self power type to action_on_key_press (and added its old name as an alias)
  • [apoli] Renamed some meta condition types (and added their old name as an alias)
    • and --> sequence
    • chance --> random_chance
  • [apoli] [For addon developers] Added PowerUtil, a utility class for modifying/querying resource values, and validating if a power type is considered a resource
  • [apoli] [For addon developers] Made container type an interface. There's also a new registry, ApoliRegistries#CONTAINER_TYPE, where addons can register their container types to be used by the inventory power type. Currently, there are two types of container type:
    • Preset container type, which re-uses a screen handler/screen of a pre-existing container
    • Dynamic container type, which has definable rows, columns, title alignment, and texture via data; also has its own screen handler/screen (currently incomplete and unsupported)
  • [apoli#254] [For addon developers] Overhauled power/action/condition (types);
    • Power/action/condition types no longer use type factories, but type configurations (that has its ID (via TypeConfiguration#id), and its TypedDataObjectFactory (via TypeConfiguration#dataFactory), which is an extension to Calio's DataObjectFactory that contains a CompoundSerializableDataType)
    • Power/action/condition types now use a similar structure for consistency
    • Actions/conditions now have their own classes (e.g: EntityAction instead of Consumer<Entity> or ActionTypeFactory.Instance)

Fixes

  • [apoli] Fixed the amount field of modifiers being prioritized over the resource field (it should be the other way around)
  • [apoli] Fixed /power remove command and revoking powers in general
  • [apoli] Fixed NullPointerException issue (crash) when checking for power types in entities
  • [apoli] Fixed action_on_item_pickup power type not properly executing its actions
  • [apoli] Fixed inventory power type giving ghost items when the power is lost
  • [apoli] Fixed in_entity_set bi-entity condition type causing a crash when either the actor or target do not exist
  • [apoli] Fixed relative_health entity condition type using an integer type for its compare_to field instead of a floating point value type
  • [origins] Fixed origin layers (aside from the base origin layer) not being visible when viewing

[!WARNING] Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_9-md for more details about this update!

Additions

  • [calio] Added new data types related to recipes:
    • SerializableDataTypes#RECIPE_SERIALIZER for recipe serializers.
    • SerializableDataTypes#RECIPE_ENTRY for recipe entries.

Changes

  • [calio] Changed SerializableDataTypes#RECIPE to actually reflect recipes instead of recipe entries.
  • [apoli#247] Crafting recipes defined in powers are now visible in the recipe book.
  • [apoli] Fields that accept an action type can now accept an array as a shorthand for using the and meta action type.
  • [apoli] Renamed the following meta condition types for consistency with vanilla:
    • chance --> random_chance
    • and --> all_of
    • or --> any_of
  • [apoli] The slot parameters of the has_power and power_count item condition types are now optional.
  • [apoli] The apoli:powers item component will no longer error when a non-existent power is defined.
  • [apoli] Power names/descriptions can now be translated with the respective power.<namespace>.<path>.name/description translation keys, even when not using the translate JSON text component.
  • [origins] The origins:origin item component will no longer error when a non-existent power is defined.
  • [origins] Origin names/descriptions can now be translated with the respective origin.<namespace>.<path>.name/description translation keys, even when not using the translate JSON text component.
  • [origins] Origin layer names can now be translated with the layer.<namespace>.<path>.name translation key, even when not using the translate JSON text component.
  • [origins] Removed OriginRegistry in favor of integrating its functionality to OriginManager.

Fixes

  • [calio] Fixed eat_seconds parameter of food components (aka. encoded/decoded via the SerializableDataType#FOOD_COMPONENT data type) accepting a non-zero positive floating point value instead of non-negative floating point value.
  • [calio] Fixed ingredients (aka. decoded/encoded via the SerializableDataTypes#INGREDIENT data type) unable to be sent to the client.
  • [calio] Fixed enum data types (aka. data types using SerializableDataType#enumValue) being case-sensitive when checking for matching additional values.
  • [apoli] Fixed crash caused by encoding global power sets.
  • [apoli] Fixed some aspects of global power sets (e.g: order) being replaced when merging.
  • [apoli] Fixed minor issue with printing JSON as text where JSON keys with null values are being printed (affects the /power dump command.)
  • [apoli] Fixed determining logic in the game_event_listener power type used for determining whether a game event should be accepted.
  • [apoli] Fixed on_block entity condition type incorrectly evaluating a block at the wrong position.
  • [apoli] Fixed crash caused by the modify_projectile_damage power type.
  • [apoli] Fixed spawn_particles entity action type miscalculating its spread.
  • [apoli] Fixed default translatable text (aka. the ApoliDataTypes#DEFAULT_TRANSLATABLE_TEXT data type) not being translatable by default.
  • [origins] Attempt to fix crash(?) with Merling's Water Breathing power (e.g: when drying out.)
  • [origins] Fixed some aspects of origin layers (e.g: name, order, gui_title, etc.) being replaced when merging.

Fixes

  • [origins] Fixed powers of origins not being granted/revoked properly.

Changes

  • [apoli] The name of sub-powers is now validated before the sub-power itself is parsed.
  • [apoli] The modify_type_tag power type can now account for when the defined tag in the power is included in a child tag of the tag being checked.

Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_7-md for more details about this update!

Additions

  • [calio] Added SerializableDataTypes#NBT_ELEMENT for encoding/decoding general NBT elements.

Fixes

  • [calio] Fixed registry key data types ignoring the defined exemptions; subsequently, this also fixed issues (again) such as vanilla dimension registry keys (e.g: minecraft:overworld, minecraft:the_nether, minecraft:the_end) not being recognized on the first time the world has been loaded.
  • [calio] Fixed wrapping of inputs/outputs in StrictListCodec<T>.
  • [apoli] Fixed sub-powers being decoded first before its Fabric resource conditions are evaluated (it should be evaluating the resource condition first.)
  • [apoli] Fixed some action/condition types using the wrong IDs. This affected the following types:
    • modify_status_effect_duration power type (it used modify_status_effect_amplifier.)
    • riding_action entity action type (it used passenger_action.)
    • air entity condition type (it used food_level.)
  • [apoli] Fixed fire_projectile entity action/power types having inconsistent implementations.
  • [apoli] Fixed if_else meta action type causing a crash if the optional else_action field is not present.
  • [apoli] Fixed advancement entity condition type not working properly.
  • [apoli] Fixed target_action bi-entity action type executing on the 'actor' in a bi-entity context.
  • [apoli] Fixed how the biome entity condition type is evaluated.
  • [apoli] Fixed attacker damage condition type not accounting for when the attacker is non-existent like it used to.
  • [apoli] Fixed damage entity action type accepting an optional damage type when it should be required.
  • [origins] Fixed carnivores unable to consume Ominous Bottles.
  • [origins] Fixed temporary cobweb having an item when it shouldn't (the item was only accessible with commands.)

Changes

  • [calio] SerializableDataTypes#NBT has been renamed to SerializableDataTypes#NBT_COMPOUND.
  • [apoli] The modify_type_tag power type can now account for tags that may include the tag specified in the power.
  • [apoli] The damage entity/bi-entity action types now requires any of the amount, modifier or modifiers fields to be defined.
  • [apoli] The NBT structure of powers in entities has been changed for clarity and consistency with new NBTs in certain vanilla entities.
    • The Factory NBT has been renamed to type.
    • The Type NBT has been renamed to id.
    • The Sources NBT has been renamed to sources.
    • The Data NBT has been renamed to data.
  • [apoli] The /power revokeall <targets> <source> sub-command has been changed to /power revoke <targets> all <source>.

There have been major changes in this update. Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_6-md for the details about this update!

Fixes

  • [apoli] Fixed issues with the 'on added/removed/gained/lost' power callbacks.
  • [apoli] Fixed restrict_armor power type only working partially, and preventing items from being quick-moved.
  • [apoli] Fixed modify_player_spawn power type disregarding previously set spawn points.
  • [apoli] Fixed issue with encoding the packet for show_toast entity action type.
  • [apoli] Fixed modify_food power type incorrectly calculating and assigning nutrition and saturation values.
  • [apoli] Fixed ingredients being duplicated when modifying crafting recipes with the modify_crafting power type.
  • [apoli] Fixed crash caused by the attribute entity condition type.
  • [origins] Fixed 'Conduit Power' status effect not being given to entities aside from players with the Merling origin.
  • [origins] Fixed origin invulnerability selection bypassing damage types included in the #minecraft:bypasses_invulnerability damage type tag.

[!WARNING] There have been major changes in this update (and upcoming ones in future updates.) Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96 for more details!

Changes

  • Updated to 1.21.

Additions

  • [apoli#225] Added duration and duration_on_use fields to the spawn_effect_cloud entity action type.
  • [apoli#227] Added sprinting power type.
  • [apoli#228] Added pose power type.
  • [apoli$234] Added prevent_entity_selection power type.

Changes

  • [apoli#223] Global power sets now support Fabric's resource conditions.
  • [origins#751] Origins and origin layers now support Fabric's resource conditions.

Fixes

  • [calio] Fixed issue with the SerializableDataTypes#RECIPE data type leniently parsing the recipe's ID and the recipe's serializer ID.
  • [apoli] Fixed *_when_hit power types causing a crash when executing/evaluating actions/conditions on the possibly non-existent attacker.
  • [apoli] Fixed issue with selecting entities by command tags (via the @e[tag = <tagName>] selector argument) added in the same tick.
  • [apoli] Fixed certain errors not being caught when reading sub-powers.
  • [apoli] Fixed inconsistent format of automatically-generated translation keys in power names and descriptions.
  • [origins] Fixed inconsistent format of automatically-generated translation keys in origins and origin layers.

Full changelogs

Changes

  • [apoli#224] Renamed action/condition types related to entity sets.
  • [apoli] Powers that use the multiple power type can now be replaced entirely with loading_priority.

Additions

  • [apoli#192] Added show_toast entity action type.
  • [apoli#211] Added modify_fov power type.
  • [apoli#219] Added new item action/condition types related to item cooldowns:
    • modify_item_cooldown item action type.
    • item_cooldown item condition type.
    • relative_item_cooldown item condition type.
  • [apoli#226] Added entity_in_radius entity condition type.
  • [apoli#232] Added leash bi-entity action type.

Fixes

  • [apoli] Fixed a potential issue with re-using serializable data of objects when serializing power/action/condition type factories.
  • [origins] Fixed badges of overridden powers not being replaced.

Changes

  • [origins#750] Made Phantom's Phasing power re-enable itself upon respawning.
  • [origins#755] Unhardcoded some powers of certain origins.

Additions

  • [apoli#180] Added has_command_tag entity condition type.
  • [apoli#186] Added compatibility with Appleskin.
  • [apoli#229] Added click_phases and priority fields to the item_on_item power type.
  • [apoli#231] Added usage_phases field to the *_block_use power types, and made them functionally consistent with the *_entity_use power types.

Fixes

  • [apoli] Fixed issues with powers that use the action_on_item_use power type not being triggered with the trigger "stop" or "during" if its priority value is less than 0.
  • [apoli] Fixed tamed entity condition type not working for certain entities.
  • [apoli] Fixed tame bi-entity action type not working for certain entities.

Origins will now be published to Ladysnake's maven. Please read this guide if you want to use the alpha/beta, and future (and old) release builds as a dependency.

The identifier aliasing system in Apoli has been refactored and moved to Calio. Please read the migration guide for steps on migrating, and for more information on the change.

[O] marks the changes in Origins, [A] marks the changes in the underlying Apoli version, and [C] marks the changes in the underlying Calio version.

Changes

  • [O][A][C] Updated to Minecraft 1.20.4
  • [A] Refactored and moved the identifier aliasing system to Calio.

[A] marks the changes in the underlying Apoli version, while [C] marks the changes in the underlying Calio version.

Changes

  • [A] Reverted supposed fix for issue with negating modified damage.
  • [A] Made the entity_set power type validate its entries upon the holder of the power being loaded.

Fixes

  • [C] Fixed argument type data types not properly printing its error in the output log.
  • [A] Fixed power HUD renders not rendering properly.
  • [A] Fixed automatic removal of entities in powers that use the entity_set power type.
  • [A] Fixed potential infinite recursion when granting powers.

Changelogs

Make sure to check out Apoli's and Calio's changelog for more information about this release:

[O] marks the changes in Origins, while [A] marks the changes in its underlying Apoli version.

Fixes

  • [O] Fixed automatically-generated badges of powers not being overridden with an empty badges field.
  • [O] Fixed origins not supporting * in identifiers.
  • [A] Fixed status_bar_texture power type not rendering regioned sprites (e.g: the "fill" portion of the experience bar) properly.
  • [A] Fixed entity_set power type executing the action_on_remove bi-entity action on discarded entities that weren't in the entity set and regardless of whether the power's condition is fulfilled.
  • [A] Fixed /power list ... <subpowers> sub-command not being accounted when specified.
  • [A] Fixed powers being removed not actually being removed from the entity, resulting in powers with empty sources.
  • [A] Fixed power addition callbacks not working reliably in certain cases (e.g: setting the value of a resource upon gaining a power, which was previously dependent on order of when the power is registered and/or granted.)
  • [A] Fixed modify_attribute power type applying vanilla modifiers twice.
  • [A] Fixed game_event_listener power type triggering advancements that use the minecraft:avoid_vibration criterion (this wasn't the case before.)
  • [A] Fixed crash caused by power types related to preventing interaction with entities.
  • [A] Fixed modify_jump power type still applying sprint-jump effects (e.g: extra horizontal velocity, exhaustion) even though the jump velocity is negated.
  • [A] Fixed oversight with syncing the power registry.
  • [A] Fixed power HUD renders not being offset properly in cases such as mounting a living entity, or being submerged underwater.
  • [A] Fixed crash that could be caused by action_on_block_break power type and block action types that may utilize directions.

Full changelog: v1.12.8...v1.12.9

Apoli changelog: v2.11.10

[O] marks the changes in Origins, while [A] and [C] marks the changes in its underlying Apoli and Calio version respectively.

Changes

  • [O] Changed Elytrian's Brittle Bones power to check for a new damage type tag: origins:kinetic.
  • [A] Slightly changed the implementation of the invisibility power type to be more optimized and compatible with other mods.

Fixes

  • [A] Fixed overlay power type rendering over screens.
  • [A] Fixed model_color power type not respecting invisibility.
  • [C] Worked around issue with the SerializableDataTypes.DIMENSION data type throwing a false error on world creation if a vanilla dimension is specified (fixes the modify_player_spawn power type.)

[O] marks the changes in Origins, while [A] marks the changes in its underlying Apoli version.

Changes

  • [O](#728) Changed Feline's Acrobatics power to check for the minecraft:is_fall damage type tag.
  • [O] Changed Enderian's Scared of Gourds power to use item tags;
    • origins:pumpkin_like/food, for preventing consumption of pumpkin-like food items (e.g: pumpkin pie.)
    • origins:pumpkin_like/equipment, for hiding entities wearing pumpkin-like equipment items (e.g: carved pumpkin.)

Fixes

  • [O](#741) Fixed badges of sub-powers being offset (in the -Y axis) at the wrong time.
  • [O] Fixed tooltip for Enderian's Scared of Gourds power not using the appropriate translation key.
  • [O] Fixed Enderian's Scared of Gourds power hiding the Enderian in its own POV when wearing a pumpkin-like equipment item.
  • [A] Fixed issue with sub-powers being disabled when overridden (via loading priority) in a multiple power.

Fixes

  • Fixed badges of sub-powers from multiple powers not being hidden if the multiple power has defined badges.

[O] marks the changes in Origins, while [A] and [C] marks the changes in its underlying Apoli and Calio versions respectively.

Changes

  • [A] Tweaked mod compatibility of certain power types.
  • [A] Made power names/descriptions translatable by default.
  • [A] Improved searching logic of legacy damage sources.
  • [A] Added missing translation keys for Apoli's config.
  • [C] Made registry key data types validate.
  • [C] Made tag data types validate.
  • [C] Made tag-like data types validate.

Fixes

  • [O] Fixed origin layers ignoring its specified title.
  • [O] Fixed issue with badge tooltips and multiple powers; the badge tooltips that corresponds to its sub-powers are now rendered properly.
  • [A] Fixed issue when preventing modified damage that deals 0 or less damage to entities.
  • [A] Fixed issues with game_event_listener power type.
  • [A] Fixed modify_attribute power type not modifying modded attributes (for real this time.)
  • [A] Fixed *_item_pickup power type not working for non-player entities.
  • [A] Fixed exposed_to_sun entity condition type not working properly.
  • [A] Fixed light_level block condition type not account for the world's ambient darkness if light_type not specified.
  • [A] Fixed name damage condition type not properly accounting for legacy damage sources.
  • [A] Fixed desync issue when dismounting from a player.
  • [A] Fixed contents of inventory power type not being synced to the client in certain cases.
  • [A] Fixed item action types not properly resetting its item stack if it's empty.
  • [A] Fixed faulty logic in the damage entity/bi-entity action types.
  • [A] Fixed unreliable behavior of action_on_callback power type in certain cases.
  • [A] Fixed entity_set power type keeping UUIDs of entities that have been discarded.
  • [A] Fixed *_hit power types not working on certain vanilla entities.

Changelogs

Make sure to check Calio, and Apoli's changelog as well for more details on the changes.

[O] marks the changes in Origins while [A] marks the changes in the underlying Apoli version.

Changes

  • [A] Simplified implementation of modify_food power type for making items always edible.
  • [A] Simplified implementation of modify_grindstone power type.
  • [A] Added support for * (current namespace/path) in REGEX_MAP data type (used by the replace_loot_table power type.)

Fixes

  • [A] Fixed condition logic in replace_loot_table power type.
  • [A] Fixed edible_item power type not working on items usable on blocks.
  • [A] Fixed exposed_to_sky and brightness entity condition types not accounting for the world's ambient darkness (in most cases.)
  • [A] Fixed modify_enchantment_level power type not working on empty item stacks (in some cases.)
  • [O] Fixed origin entity condition type crashing the game by specifying an origin layer that doesn't exist.

Apoli changelog: v2.11.5

Origins full changelog: v1.12.3...v1.12.4

[A] marks the changes in the underlying Apoli version.

Fixes

  • [A] Fixed oversight where the action_on_remove bi-entity action of the entity_set power type is only being called when removing a temporary entity from an entity set.
  • [A] Fixed entity_set power type ticking temporary entities inconsistently.

Apoli changelog: v2.11.4

[O] marks the changes in Origins while [A] marks the changes in the underlying Apoli version.

Fixes

  • [A] Fixed replace_loot_table power type ignoring block conditions.
  • [A] Fixed potential issues with the inventory power type.
  • [O] Fixed result stack of recipe badge tooltips not being modified by a power that uses the modify_crafting power type.
  • [O] Fixed concurrent modification crash edge-case issue when removing disabled powers from origins on server (re)load.

Apoli changelog: v2.11.3
Origins changelog (full): v1.12.1..v1.12.2


Project members

Apace

Owner

eggohito

Maintainer

Details

Licensed MIT
Published 4 years ago
Updated 9 days ago