▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Itematic
Itematic

Itematic

A mod that adds data-driven items to the game, and much more!

602
36
Все версииItematic 0.5.0 Preview 1 for 1.21.3

Itematic 0.5.0 Preview 1 for 1.21.3

Beta2 мес. назад

Список изменений

This preview version has a big change by renaming the root fields for items. It also moves crafting remainders to recipes.

For a few more details regarding the split and future you can look at the roadmap to 1.21!

Changes

  • Removed armour materials entirely.
    • Its values are now inlined in the minecraft:armor item behaviour component instead.

Items

  • Renamed the base field to display.
    • It only contains data related to the item's display.
  • Renamed the components field to behavior.
    • It only contains (or should only contain) item behaviour. Everything else must be moved elsewhere.

These two changes have been made due to a new required field in the item display, which already breaks all existing item definitions.

  • Added the model field to the item display.
    • Its value is an id referencing an item model in a resource pack.
    • This value can be changed for individual item stacks in the minecraft:item_model data component.
  • Added the optional tooltip_style field to the item display.
    • Its value is an id referencing a texture in a resource pack.
    • This value can be changed for individual item stacks in the minecraft:tooltip_style data component.
  • Added the minecraft:before_death_holder item event.

So if you had this:

{
  "base": {
    "translation_key": "item.minecraft.stick"
  },
  "components": {
    "minecraft:fuel": {
      "ticks": 100
    },
    "minecraft:stackable": 64
  }
}

You now have to use this instead:

{
  "display": {
    "translation_key": "item.minecraft.stick",
    "model": "minecraft:stick"
  },
  "behavior": {
    "minecraft:fuel": {
      "ticks": 100
    },
    "minecraft:stackable": 64
  }
}

Item Behaviour Components

  • Added the following item behaviour components:
    • minecraft:glider
  • Removed the following item behaviour components:
    • minecraft:life_saving
      • This has been replaced with the new minecraft:before_death_holder item event.
      • To replicate the previous behaviour, the minecraft:clear_status_effects and minecraft:add_status_effects actions can be used.
      • Note that this means that the minecraft:death_protection data component is unused as a result.
      • The reason this was moved to an item event is to support the newly added 'consume effects' from the minecraft:death_protection data component from vanilla in 1.21.3, which the action system accommodates for with even more possibilities.
    • minecraft:recipe_remainder
      • This has been replaced by remainders in recipe ingredients directly and the new remainder field in the minecraft:fuel item behaviour component.
    • minecraft:useable_on_fluid
      • This has been replaced in favour of passes in their respective behaviour components.

minecraft:armor

  • Modified minecraft:armor.
    • Removed the need for armour materials by inlining the fields instead.
    • Fields:
      • defense: A non-negative integer. The amount of armour points to add to the minecraft:armor attribute.
      • toughness: A non-negative double. The amount of toughness to add to the minecraft:armor_toughness attribute.
      • knockback_resistance A non-negative double. The amount of knockback resistance to add to the minecraft:knockback_resistance attribute.
      • attribute_id: An identifier. The id to use for the attribute modifiers.

Example:

{
  "minecraft:armor": {
    "attribute_id": "minecraft:armor.chestplate",
    "defense": 6,
    "knockback_resistance": 0.0,
    "toughness": 0.0
  }
}

minecraft:consumable

  • Moved the result_item field to remainder in minecraft:useable.

minecraft:cooldown

  • Added an optional group field, which is the id to use as the cooldown group. If not specified, it will use the item id

minecraft:entity

  • Added an optional passes field, which is a list of strings that allows its user to place an entity given a certain context.
    • block: Allows the user to place the entity on a block.
    • fluid: Allows the user to place the entity on a fluid.
  • Its default value is ["block"].

Example:

{
  "allow_item_data": true,
  "entity": {
    "type": "minecraft:pig"
  },
  "passes": [
    "block",
    "fluid"
  ]
}

minecraft:equipment

  • Updated to match the minecraft:equippable data component.
  • Note that the dispensable field is unused as it has been replaced by the minecraft:dispensable item behaviour.

minecraft:food

  • Removed the effects field.
  • This should now be applied with the minecraft:consume_item or minecraft:eat_item item event combined with predicates and the new minecraft:add_status_effects action.

So if you had this:

{
  "components": {
    "minecraft:food": {
      "effects": [
        {
          "effect": {
            "id": "minecraft:hunger",
            "duration": 600,
            "show_icon": true
          },
          "probability": 0.8
        }
      ],
      "nutrition": 4,
      "saturation": 0.8
    }
  }
}

You now have to use this instead:

{
  "components": {
    "minecraft:food": {
      "nutrition": 4,
      "saturation": 0.8
    }
  },
  "events": {
    "minecraft:consume_item": {
      "action": {
        "type": "minecraft:add_status_effects",
        "effects": [
          {
            "id": "minecraft:hunger",
            "duration": 600,
            "show_icon": true
          }
        ],
        "entity": "this"
      },
      "requirements": {
        "conditions": {
          "chance": 0.8,
          "condition": "minecraft:random_chance"
        },
        "context": {
          "entity": "this",
          "position": "this"
        }
      }
    }
  }
}

minecraft:fuel

  • Added an optional remainder field, which is the item stack to leave when used as a fuel.
  • This replaces the minecraft:recipe_remainder item behaviour that was used previously for this.

Example:

{
  "remainder": {
    "id": "minecraft:bucket",
    "count": 1
  },
  "ticks": 20000
}

minecraft:glider

  • Allows its user to glide in the air and use Firework Rockets to boost themselves forwards.
  • Fields:
    • useable_if: An optional item predicate. Checks whether its user can use the glider. If not specified, the user can always use the glider.

minecraft:useable

  • Added an optional remainder field, which is the item stack to leave when finished using, whether instantaneous or over a specified duration.

Example:

{
  "animation": "eat",
  "remainder": {
    "id": "minecraft:bowl",
    "count": 1
  },
  "ticks": {
    "type": "minecraft:constant",
    "amount": 32
  }
}
  • Changed the way the use duration in the ticks field works:
  • If not specified, the item will be used instantly instead of being used indefinitely.
  • To reproduce the previous behaviour, use the new minecraft:indefinite use duration provider.
  • This makes the field in the behaviour component the same as the data component in all cases.
  • A positive integer can still be used as a direct usage of minecraft:constant.

So if you had this:

{
  "minecraft:useable": {
    "animation": "block"
  }
}

You now have to use this instead:

{
  "minecraft:useable": {
    "animation": "block",
    "ticks": {
      "type": "minecraft:indefinite"
    }
  }
}

Data Components

  • Removed the following data components:
    • minecraft:immune_to_damage
      • This has been replaced by minecraft:damage_resistant from vanilla.
      • Entries are datafixed properly.
  • Made the following data components unused:
    • minecraft:death_protection
      • This has been replaced by the minecraft:before_death_holder item event to accommodate more actions.
      • The reason the data component itself still exists is to not break existing worlds.

minecraft:equippable

  • No longer uses the dispensable field as it has been replaced by the minecraft:dispensable item behaviour.

minecraft:glider

  • Now has an optional useable_if field, which is an item predicate to check whether its user can use the glider.
  • If not specified, the user can always use the glider.

minecraft:use_duration

  • You now no longer specify a ticks field, making it consistent with the way it is used in the minecraft:useable behaviour.

So if you had this:

{
  "ticks": {
    "type": "minecraft:constant",
    "amount": 32
  }
}

You now have to use this instead:

{
  "type": "minecraft:constant",
  "amount": 32
}
  • You can no longer specify an empty map to specify an indefinite use duration and you must use the minecraft:indefinite use duration provider instead.

So if you had this:

{}

You must now use this:

{
  "type": "minecraft:indefinite"
}
  • A positive integer can still be used as a direct usage of the minecraft:constant use duration provider.

minecraft:weapon_attack_damage

  • When determining whether to add the base minecraft:attack_damage attribute or not, it now defaults to true instead of false and must be explicitly set by rules accordingly.

Use Durations

  • Added the following use durations:
    • minecraft:indefinite

minecraft:indefinite

  • Always uses the item indefinitely.
  • Has no additional fields.

Actions

  • Added the following actions:
    • minecraft:add_status_effects

minecraft:add_status_effects

  • Adds status effects to an entity.
  • The action is unsuccessful if the entity does not exist, is not a living entity or if no effect is added.
  • Fields:
    • effects: A list of status effects. The effects to apply to the entity.
    • entity: An action context parameter. The entity to target.

Example:

{
  "type": "minecraft:add_status_effects",
  "effects": [
    {
      "id": "minecraft:regeneration",
      "amplifier": 1,
      "duration": 100,
      "show_icon": true
    },
    {
      "id": "minecraft:absorption",
      "duration": 2400,
      "show_icon": true
    }
  ],
  "entity": "this"
}

Entity Initialisers

  • Removed the variant field from minecraft:boat as its variant has been split up into separate entity types.

So if you had this:

{
  "type": "minecraft:boat",
  "variant": "minecraft:oak"
}

You must now use this instead:

{
  "type": "minecraft:oak_boat"
}
  • Removed the prevent_spawn_from_riptide field from minecraft:trident.

Recipes

  • Removed the following recipe types:
  • minecraft:item_coloring
    • This has been replaced by minecraft:crafting_transmute from vanilla.
  • Added remainders to ingredients.
    • Replaces the minecraft:recipe_remainder item behaviour component.
    • The existing format still works.
    • Currently only in use for shaped and shapeless recipes.
    • Fields:
      • items: An item, list of items or hash-prefixed item tag. The items to allow for this ingredient.
      • remainder: An optional item stack. The item stack to leave when the ingredient is consumed.

Example:

{
  "items": "minecraft:milk_bucket",
  "remainder": {
    "id": "minecraft:bucket",
    "count": 1
  }
}

Colour Providers

  • Added the following colour provider types:
    • minecraft:first_to_pass_condition

minecraft:first_to_pass_condition

  • Uses the first colour provider whose condition passes or uses the fallback otherwise.
  • Fields:
    • entries: A non-empty list of colour providers. The colours to pick from depending on their conditions.
    • fallback: The fallback colour provider to use when all entries fail.
  • Entry fields:
    • color: A colour provider.
    • condition: An entry condition. The condition that needs to pass in order to use this colour provider.
  • Entry condition fields:
    • progress: A number range that checks for the progress.

Example:

{
  "type": "minecraft:first_to_pass_condition",
  "entries": [
    {
      "color": {
        "type": "minecraft:constant",
        "color": -43948
      },
      "condition": {
        "progress": 1.0
      }
    }
  ],
  "fallback": {
    "type": "minecraft:constant",
    "color": -9402369
  }
}

Файлы

Itematic-0.5.0-preview.1+1.21.3.jar(2.29 MiB)
Основной
Скачать

Метаданные

Канал релиза

Beta

Номер версии

0.5.0-preview.1+1.21.3

Загрузчики

Fabric

Версии игры

1.21.2–1.21.3

Загрузок

10

Дата публикации

2 мес. назад

Загрузил

ID версии

Главная