2020-09-22 15:11:20 +02:00
|
|
|
package com.minelittlepony.unicopia.item;
|
|
|
|
|
2020-09-23 22:38:28 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
2021-08-13 15:57:21 +02:00
|
|
|
|
2022-08-27 15:14:00 +02:00
|
|
|
import com.minelittlepony.unicopia.*;
|
2021-09-02 19:11:51 +02:00
|
|
|
import com.minelittlepony.unicopia.block.UBlocks;
|
2021-08-24 21:15:43 +02:00
|
|
|
import com.minelittlepony.unicopia.entity.UEntities;
|
2021-02-16 12:39:39 +01:00
|
|
|
import com.minelittlepony.unicopia.item.enchantment.UEnchantments;
|
2020-09-22 15:11:20 +02:00
|
|
|
import com.minelittlepony.unicopia.item.toxin.UFoodComponents;
|
|
|
|
|
2022-09-23 23:25:00 +02:00
|
|
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
|
|
|
import net.minecraft.entity.effect.StatusEffects;
|
2022-09-18 21:39:42 +02:00
|
|
|
import net.minecraft.item.*;
|
2020-09-22 15:11:20 +02:00
|
|
|
import net.minecraft.item.Item.Settings;
|
2021-02-03 21:25:42 +01:00
|
|
|
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
2022-09-18 21:39:42 +02:00
|
|
|
import net.fabricmc.fabric.api.registry.FuelRegistry;
|
2020-09-22 15:11:20 +02:00
|
|
|
import net.minecraft.sound.SoundEvent;
|
2022-09-25 00:14:29 +02:00
|
|
|
import net.minecraft.util.Identifier;
|
2020-09-22 15:11:20 +02:00
|
|
|
import net.minecraft.util.Rarity;
|
|
|
|
import net.minecraft.util.registry.Registry;
|
|
|
|
|
|
|
|
public interface UItems {
|
|
|
|
|
2020-09-23 22:38:28 +02:00
|
|
|
List<Item> ITEMS = new ArrayList<>();
|
|
|
|
|
2022-03-26 22:51:34 +01:00
|
|
|
Item GREEN_APPLE = register("green_apple", AppleItem.registerTickCallback(new Item(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.APPLE))));
|
|
|
|
Item SWEET_APPLE = register("sweet_apple", AppleItem.registerTickCallback(new Item(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.APPLE))));
|
|
|
|
Item SOUR_APPLE = register("sour_apple", AppleItem.registerTickCallback(new Item(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.APPLE))));
|
2020-09-22 15:11:20 +02:00
|
|
|
|
2022-03-26 22:51:34 +01:00
|
|
|
ZapAppleItem ZAP_APPLE = register("zap_apple", AppleItem.registerTickCallback(new ZapAppleItem(new Item.Settings().group(ItemGroup.FOOD).food(UFoodComponents.ZAP_APPLE))));
|
2022-09-23 23:25:00 +02:00
|
|
|
Item ZAP_BULB = register("zap_bulb", new Item(new Item.Settings().group(ItemGroup.FOOD).food(new FoodComponent.Builder()
|
|
|
|
.hunger(-2)
|
|
|
|
.saturationModifier(-0.8f)
|
|
|
|
.alwaysEdible()
|
|
|
|
.statusEffect(new StatusEffectInstance(StatusEffects.POISON, 100, 0), 0.6F)
|
|
|
|
.statusEffect(new StatusEffectInstance(StatusEffects.BLINDNESS, 100, 0), 0.6F)
|
|
|
|
.statusEffect(new StatusEffectInstance(StatusEffects.BAD_OMEN, 100, 0), 0.6F)
|
|
|
|
.build())));
|
2020-09-22 15:11:20 +02:00
|
|
|
|
2022-03-26 22:51:34 +01:00
|
|
|
Item ROTTEN_APPLE = register("rotten_apple", new RottenAppleItem(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.APPLE)));
|
|
|
|
Item COOKED_ZAP_APPLE = register("cooked_zap_apple", new Item(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.APPLE)));
|
2020-09-22 15:11:20 +02:00
|
|
|
|
2022-08-27 12:33:53 +02:00
|
|
|
Item MUSIC_DISC_CRUSADE = register("music_disc_crusade", USounds.RECORD_CRUSADE, 181);
|
|
|
|
Item MUSIC_DISC_PET = register("music_disc_pet", USounds.RECORD_PET, 221);
|
|
|
|
Item MUSIC_DISC_POPULAR = register("music_disc_popular", USounds.RECORD_POPULAR, 112);
|
|
|
|
Item MUSIC_DISC_FUNK = register("music_disc_funk", USounds.RECORD_FUNK, 91);
|
2020-09-22 15:11:20 +02:00
|
|
|
|
2021-02-03 21:25:42 +01:00
|
|
|
FriendshipBraceletItem FRIENDSHIP_BRACELET = register("friendship_bracelet", new FriendshipBraceletItem(
|
|
|
|
new FabricItemSettings()
|
|
|
|
.rarity(Rarity.UNCOMMON)
|
|
|
|
.group(ItemGroup.TOOLS)
|
|
|
|
));
|
|
|
|
|
2021-02-14 16:53:44 +01:00
|
|
|
Item EMPTY_JAR = register("empty_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(16).fireproof(), false, false, false));
|
2021-02-14 21:15:30 +01:00
|
|
|
FilledJarItem FILLED_JAR = register("filled_jar", new FilledJarItem(new Item.Settings().maxCount(1)));
|
2021-02-14 16:53:44 +01:00
|
|
|
Item RAIN_CLOUD_JAR = register("rain_cloud_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1).fireproof(), true, false, false));
|
|
|
|
Item STORM_CLOUD_JAR = register("storm_cloud_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1).fireproof(), true, true, false));
|
|
|
|
Item LIGHTNING_JAR = register("lightning_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1).fireproof(), false, false, true));
|
|
|
|
Item ZAP_APPLE_JAM_JAR = register("zap_apple_jam_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1).fireproof(), false, false, true));
|
|
|
|
|
2021-02-18 21:30:43 +01:00
|
|
|
Item CRYSTAL_HEART = register("crystal_heart", new CrystalHeartItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1)));
|
2021-02-19 09:34:26 +01:00
|
|
|
Item CRYSTAL_SHARD = register("crystal_shard", new Item(new Item.Settings().group(ItemGroup.MATERIALS)));
|
|
|
|
|
2021-03-01 11:56:30 +01:00
|
|
|
Item GEMSTONE = register("gemstone", new GemstoneItem(new Item.Settings().group(ItemGroup.MATERIALS)));
|
2022-08-28 17:12:33 +02:00
|
|
|
Item BOTCHED_GEM = register("botched_gem", new Item(new Item.Settings().group(ItemGroup.MATERIALS)));
|
2021-02-27 11:24:09 +01:00
|
|
|
|
|
|
|
Item PEGASUS_FEATHER = register("pegasus_feather", new Item(new Item.Settings().group(ItemGroup.MATERIALS)));
|
|
|
|
Item GRYPHON_FEATHER = register("gryphon_feather", new Item(new Item.Settings().group(ItemGroup.MATERIALS)));
|
|
|
|
|
2021-06-21 23:49:55 +02:00
|
|
|
Item DAFFODIL_DAISY_SANDWICH = register("daffodil_daisy_sandwich", new Item(new Item.Settings().group(ItemGroup.FOOD).food(UFoodComponents.DAFODIL_DAISY_SANDWICH)));
|
|
|
|
Item HAY_BURGER = register("hay_burger", new Item(new Item.Settings().group(ItemGroup.FOOD).maxCount(1).food(UFoodComponents.HAY_BURGER)));
|
|
|
|
Item HAY_FRIES = register("hay_fries", new Item(new Item.Settings().group(ItemGroup.FOOD).maxCount(16).food(UFoodComponents.HAY_FRIES)));
|
2021-08-17 19:06:04 +02:00
|
|
|
Item WHEAT_WORMS = register("wheat_worms", new Item(new Item.Settings().group(ItemGroup.MISC).maxCount(16).food(UFoodComponents.INSECTS)));
|
2022-03-27 16:02:14 +02:00
|
|
|
Item MUFFIN = register("muffin", new MuffinItem(new Item.Settings().group(ItemGroup.FOOD).maxCount(32).food(FoodComponents.BREAD), 0));
|
2021-06-21 23:49:55 +02:00
|
|
|
|
2021-09-02 19:11:51 +02:00
|
|
|
Item PEBBLES = register("pebbles", new RacePredicatedAliasedBlockItem(UBlocks.ROCKS, new Item.Settings().group(ItemGroup.MATERIALS), Race::canUseEarth));
|
2022-03-27 16:02:14 +02:00
|
|
|
Item ROCK = register("rock", new HeavyProjectileItem(new Item.Settings().group(ItemGroup.MATERIALS), 3));
|
2021-09-03 00:02:34 +02:00
|
|
|
Item WEIRD_ROCK = register("weird_rock", new Item(new Item.Settings().group(ItemGroup.MATERIALS)));
|
2021-09-02 23:44:53 +02:00
|
|
|
Item ROCK_STEW = register("rock_stew", new Item(new Item.Settings().group(ItemGroup.FOOD).food(FoodComponents.MUSHROOM_STEW)));
|
2021-09-02 19:11:51 +02:00
|
|
|
|
2022-09-25 01:55:29 +02:00
|
|
|
Item GREEN_APPLE_SEEDS = register("green_apple_seeds", new AliasedBlockItem(UBlocks.GREEN_APPLE_SPROUT, new Item.Settings().group(ItemGroup.MATERIALS)));
|
2022-09-25 15:39:07 +02:00
|
|
|
Item SWEET_APPLE_SEEDS = register("sweet_apple_seeds", new AliasedBlockItem(UBlocks.SWEET_APPLE_SPROUT, new Item.Settings().group(ItemGroup.MATERIALS)));
|
2022-09-25 16:23:10 +02:00
|
|
|
Item SOUR_APPLE_SEEDS = register("sour_apple_seeds", new AliasedBlockItem(UBlocks.SOUR_APPLE_SPROUT, new Item.Settings().group(ItemGroup.MATERIALS)));
|
2022-09-25 01:55:29 +02:00
|
|
|
|
2021-06-21 23:49:55 +02:00
|
|
|
Item MUG = register("mug", new Item(new Settings().group(ItemGroup.MATERIALS).maxCount(16)));
|
|
|
|
Item CIDER = register("cider", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).food(UFoodComponents.CIDER).maxCount(1).recipeRemainder(MUG)));
|
|
|
|
Item JUICE = register("juice", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).recipeRemainder(Items.GLASS_BOTTLE).maxCount(1).food(UFoodComponents.JUICE)));
|
2021-06-24 22:43:26 +02:00
|
|
|
Item BURNED_JUICE = register("burned_juice", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).recipeRemainder(Items.GLASS_BOTTLE).maxCount(1).food(UFoodComponents.BURNED_JUICE)));
|
2021-06-21 23:49:55 +02:00
|
|
|
|
2021-02-27 11:24:09 +01:00
|
|
|
Item GOLDEN_FEATHER = register("golden_feather", new Item(new Item.Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.MATERIALS)));
|
|
|
|
Item GOLDEN_WING = register("golden_wing", new Item(new Item.Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.MATERIALS)));
|
|
|
|
|
2022-09-18 01:23:29 +02:00
|
|
|
Item DRAGON_BREATH_SCROLL = register("dragon_breath_scroll", new DragonBreathScrollItem(new Item.Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.TOOLS)));
|
|
|
|
|
2022-09-23 15:38:48 +02:00
|
|
|
Item WOODEN_POLEARM = register("wooden_polearm", new PolearmItem(ToolMaterials.WOOD, 2, -3.6F, 2, new Item.Settings().group(ItemGroup.COMBAT)));
|
|
|
|
Item STONE_POLEARM = register("stone_polearm", new PolearmItem(ToolMaterials.STONE, 2, -3.6F, 2, new Item.Settings().group(ItemGroup.COMBAT)));
|
|
|
|
Item IRON_POLEARM = register("iron_polearm", new PolearmItem(ToolMaterials.IRON, 2, -3.6F, 3, new Item.Settings().group(ItemGroup.COMBAT)));
|
|
|
|
Item GOLDEN_POLEARM = register("golden_polearm", new PolearmItem(ToolMaterials.GOLD, 2, -3.6F, 4, new Item.Settings().group(ItemGroup.COMBAT)));
|
|
|
|
Item DIAMOND_POLEARM = register("diamond_polearm", new PolearmItem(ToolMaterials.DIAMOND, 2, -3.6F, 5, new Item.Settings().group(ItemGroup.COMBAT)));
|
|
|
|
Item NETHERITE_POLEARM = register("netherite_polearm", new PolearmItem(ToolMaterials.NETHERITE, 2, -3.6F, 5, new Item.Settings().group(ItemGroup.COMBAT).fireproof()));
|
2022-09-18 21:39:42 +02:00
|
|
|
|
2021-08-19 19:52:35 +02:00
|
|
|
Item BUTTERFLY_SPAWN_EGG = register("butterfly_spawn_egg", new SpawnEggItem(UEntities.BUTTERFLY, 0x222200, 0xaaeeff, new Item.Settings().group(ItemGroup.MISC)));
|
2021-08-23 15:37:44 +02:00
|
|
|
Item BUTTERFLY = register("butterfly", new Item(new Item.Settings().group(ItemGroup.FOOD).food(UFoodComponents.INSECTS)));
|
2021-08-19 19:52:35 +02:00
|
|
|
|
2021-11-09 17:29:55 +01:00
|
|
|
Item SPELLBOOK = register("spellbook", new SpellbookItem(new Item.Settings().maxCount(1).rarity(Rarity.UNCOMMON).group(ItemGroup.TOOLS)));
|
|
|
|
|
2021-02-27 17:42:29 +01:00
|
|
|
AmuletItem PEGASUS_AMULET = register("pegasus_amulet", new AmuletItem(new FabricItemSettings()
|
2021-08-13 15:57:21 +02:00
|
|
|
.maxCount(1)
|
2021-02-27 11:24:09 +01:00
|
|
|
.maxDamage(890)
|
|
|
|
.rarity(Rarity.UNCOMMON)
|
2021-03-03 19:32:51 +01:00
|
|
|
.group(ItemGroup.DECORATIONS), 900));
|
2021-08-13 15:57:21 +02:00
|
|
|
AlicornAmuletItem ALICORN_AMULET = register("alicorn_amulet", new AlicornAmuletItem(new FabricItemSettings()
|
|
|
|
.maxCount(1)
|
|
|
|
.maxDamage(1000)
|
|
|
|
.rarity(Rarity.RARE)
|
|
|
|
.group(ItemGroup.DECORATIONS)));
|
2021-02-18 21:30:43 +01:00
|
|
|
|
2020-09-22 15:11:20 +02:00
|
|
|
static <T extends Item> T register(String name, T item) {
|
2022-09-25 00:14:29 +02:00
|
|
|
return register(Unicopia.id(name), item);
|
|
|
|
}
|
|
|
|
|
|
|
|
static <T extends Item> T register(Identifier id, T item) {
|
2020-09-23 22:38:28 +02:00
|
|
|
ITEMS.add(item);
|
2020-09-22 15:11:20 +02:00
|
|
|
if (item instanceof BlockItem) {
|
|
|
|
((BlockItem)item).appendBlocks(Item.BLOCK_ITEMS, item);
|
|
|
|
}
|
2022-09-25 00:14:29 +02:00
|
|
|
return Registry.register(Registry.ITEM, id, item);
|
2020-09-22 15:11:20 +02:00
|
|
|
}
|
|
|
|
|
2022-08-27 12:33:53 +02:00
|
|
|
static MusicDiscItem register(String name, SoundEvent sound, int seconds) {
|
2020-09-22 15:11:20 +02:00
|
|
|
return register(name, new MusicDiscItem(1, sound, new Settings()
|
|
|
|
.maxCount(1)
|
|
|
|
.group(ItemGroup.MISC)
|
2022-08-27 12:33:53 +02:00
|
|
|
.rarity(Rarity.RARE), seconds
|
2020-09-22 15:11:20 +02:00
|
|
|
) {});
|
|
|
|
}
|
|
|
|
|
|
|
|
static void bootstrap() {
|
2022-03-26 22:51:34 +01:00
|
|
|
AppleItem.registerTickCallback(Items.APPLE);
|
2022-09-18 21:45:56 +02:00
|
|
|
FuelRegistry.INSTANCE.add(WOODEN_POLEARM, 200);
|
|
|
|
FuelRegistry.INSTANCE.add(MUG, 250);
|
|
|
|
FuelRegistry.INSTANCE.add(DRAGON_BREATH_SCROLL, 20000);
|
|
|
|
FuelRegistry.INSTANCE.add(BUTTERFLY, 2);
|
|
|
|
FuelRegistry.INSTANCE.add(SPELLBOOK, 9000);
|
2022-03-26 22:51:34 +01:00
|
|
|
|
2021-02-16 12:39:39 +01:00
|
|
|
UEnchantments.bootstrap();
|
2020-10-02 21:09:14 +02:00
|
|
|
URecipes.bootstrap();
|
2021-03-01 11:56:30 +01:00
|
|
|
UItemGroups.bootstrap();
|
2020-09-22 15:11:20 +02:00
|
|
|
}
|
|
|
|
}
|