diff --git a/src/main/java/ru/betterend/item/ArmoredElytra.java b/src/main/java/ru/betterend/item/ArmoredElytra.java index d5604248..38ceb39c 100644 --- a/src/main/java/ru/betterend/item/ArmoredElytra.java +++ b/src/main/java/ru/betterend/item/ArmoredElytra.java @@ -1,6 +1,7 @@ package ru.betterend.item; import net.fabricmc.fabric.api.item.v1.EquipmentSlotProvider; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EquipmentSlot; @@ -14,15 +15,17 @@ import ru.betterend.patterns.Patterned; import ru.betterend.patterns.Patterns; import ru.betterend.registry.EndItems; -public class ArmoredElytra extends ElytraItem implements EquipmentSlotProvider, BreakableItem, Patterned { +public class ArmoredElytra extends ElytraItem implements BreakableItem { private final ResourceLocation wingTexture; private final Item repairItem; private final double movementFactor; public ArmoredElytra(String name, Item repairItem, int durability, double movementFactor, boolean fireproof) { - super(fireproof ? EndItems.makeItemSettings().durability(durability).rarity(Rarity.RARE).fireResistant() : - EndItems.makeItemSettings().durability(durability).rarity(Rarity.RARE)); + super(fireproof ? EndItems.makeItemSettings().equipmentSlot(stack -> EquipmentSlot.CHEST) + .durability(durability).rarity(Rarity.RARE).fireResistant() : + EndItems.makeItemSettings().equipmentSlot(stack -> EquipmentSlot.CHEST) + .durability(durability).rarity(Rarity.RARE)); this.wingTexture = BetterEnd.makeID("textures/entity/" + name + ".png"); this.repairItem = repairItem; this.movementFactor = movementFactor; @@ -46,14 +49,4 @@ public class ArmoredElytra extends ElytraItem implements EquipmentSlotProvider, FabricModelPredicateProviderRegistry.register(this, new ResourceLocation("broken"), (itemStack, clientLevel, livingEntity) -> ElytraItem.isFlyEnabled(itemStack) ? 0.0F : 1.0F); } - - @Override - public String getModelPattern(String name) { - return Patterns.createItemGenerated(name); - } - - @Override - public EquipmentSlot getPreferredEquipmentSlot(ItemStack stack) { - return EquipmentSlot.CHEST; - } } diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 92d98166..c2ad6722 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -1,9 +1,7 @@ package ru.betterend.registry; -import java.util.List; - import com.google.common.collect.Lists; - +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockSource; import net.minecraft.core.Direction; @@ -19,41 +17,20 @@ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.Foods; -import net.minecraft.world.item.ArmorItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Item.Properties; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.Rarity; -import net.minecraft.world.item.ShovelItem; -import net.minecraft.world.item.SpawnEggItem; -import net.minecraft.world.item.SwordItem; -import net.minecraft.world.item.TieredItem; -import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.*; import net.minecraft.world.level.block.DispenserBlock; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; import ru.betterend.interfaces.BreakableItem; -import ru.betterend.item.ArmoredElytra; -import ru.betterend.item.DrinkItem; -import ru.betterend.item.EnchantedPetalItem; -import ru.betterend.item.EndArmorItem; -import ru.betterend.item.EndBucketItem; -import ru.betterend.item.EndSpawnEggItem; -import ru.betterend.item.EternalCrystalItem; -import ru.betterend.item.PatternedDiscItem; -import ru.betterend.item.PatternedItem; +import ru.betterend.item.*; import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndToolMaterial; -import ru.betterend.item.tool.EndAxeItem; -import ru.betterend.item.tool.EndHammerItem; -import ru.betterend.item.tool.EndHoeItem; -import ru.betterend.item.tool.EndPickaxeItem; -import ru.betterend.item.tool.EndShovelItem; -import ru.betterend.item.tool.EndSwordItem; +import ru.betterend.item.tool.*; import ru.betterend.tab.CreativeTabs; import ru.betterend.util.TagHelper; +import java.util.List; + public class EndItems { private static final List MOD_BLOCKS = Lists.newArrayList(); private static final List MOD_ITEMS = Lists.newArrayList(); @@ -245,12 +222,14 @@ public class EndItems { return registerDrink(name, builder.build()); } - public static Properties makeItemSettings() { - return new Item.Properties().tab(CreativeTabs.TAB_ITEMS); + public static FabricItemSettings makeItemSettings() { + FabricItemSettings properties = new FabricItemSettings(); + return (FabricItemSettings) properties.tab(CreativeTabs.TAB_ITEMS); } - public static Properties makeBlockItemSettings() { - return new Item.Properties().tab(CreativeTabs.TAB_BLOCKS); + public static FabricItemSettings makeBlockItemSettings() { + FabricItemSettings properties = new FabricItemSettings(); + return (FabricItemSettings) properties.tab(CreativeTabs.TAB_BLOCKS); } public static void register() {} diff --git a/src/main/resources/assets/betterend/models/item/elytra_armored.json b/src/main/resources/assets/betterend/models/item/elytra_armored.json new file mode 100644 index 00000000..a59c580f --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/elytra_armored.json @@ -0,0 +1,14 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/elytra_armored" + }, + "overrides": [ + { + "predicate": { + "broken": 1 + }, + "model": "betterend:item/elytra_armored_broken" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/elytra_armored_broken.json b/src/main/resources/assets/betterend/models/item/elytra_armored_broken.json new file mode 100644 index 00000000..cf30b22a --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/elytra_armored_broken.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/elytra_armored_broken" + } +} diff --git a/src/main/resources/assets/betterend/textures/entity/elytra_armored.png b/src/main/resources/assets/betterend/textures/entity/elytra_armored.png index c5540b5d..4fb41886 100644 Binary files a/src/main/resources/assets/betterend/textures/entity/elytra_armored.png and b/src/main/resources/assets/betterend/textures/entity/elytra_armored.png differ diff --git a/src/main/resources/assets/betterend/textures/item/elytra_armored.png b/src/main/resources/assets/betterend/textures/item/elytra_armored.png index 3d13a928..f8dfb88b 100644 Binary files a/src/main/resources/assets/betterend/textures/item/elytra_armored.png and b/src/main/resources/assets/betterend/textures/item/elytra_armored.png differ diff --git a/src/main/resources/assets/betterend/textures/item/elytra_armored_broken.png b/src/main/resources/assets/betterend/textures/item/elytra_armored_broken.png new file mode 100644 index 00000000..fe2de9a2 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/item/elytra_armored_broken.png differ