Skip to content

Origins 1.13.0-alpha.10 (Minecraft 1.21.1)

Pre-release
Pre-release
Compare
Choose a tag to compare
@eggohito eggohito released this 01 Dec 12:06
· 7 commits to 1.21.x/dev since this release
ff49da9

Warning

Power/action/condition types and actions/conditions have been overhauled in this update. There is currently no documentation, but you can check out PR apace100/apoli#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