TheWildBackport/common/src/main/java/com/cursedcauldron/wildbackport/common/registry/WBItems.java
2022-08-25 17:53:18 -04:00

65 lines
4.1 KiB
Java

package com.cursedcauldron.wildbackport.common.registry;
import com.cursedcauldron.wildbackport.WildBackport;
import com.cursedcauldron.wildbackport.client.registry.WBSoundEvents;
import com.cursedcauldron.wildbackport.common.entities.access.api.BoatTypes;
import com.cursedcauldron.wildbackport.common.items.ChestBoatItem;
import com.cursedcauldron.wildbackport.common.items.DiscFragmentItem;
import com.cursedcauldron.wildbackport.common.items.TadpoleBucketItem;
import com.cursedcauldron.wildbackport.common.registry.entity.WBEntityTypes;
import com.cursedcauldron.wildbackport.core.api.CoreRegistry;
import com.cursedcauldron.wildbackport.core.mixin.access.RecordItemAccessor;
import dev.architectury.injectables.annotations.ExpectPlatform;
import net.minecraft.core.Registry;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.vehicle.Boat;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.level.material.Fluids;
import java.util.function.Supplier;
//<>
public class WBItems {
public static final CoreRegistry<Item> ITEMS = CoreRegistry.create(Registry.ITEM, WildBackport.MOD_ID);
// Spawns
public static final Supplier<Item> ALLAY_SPAWN_EGG = create("allay_spawn_egg", spawnEgg(WBEntityTypes.ALLAY, 56063, 44543));
public static final Supplier<Item> FROG_SPAWN_EGG = create("frog_spawn_egg", spawnEgg(WBEntityTypes.FROG, 13661252, 16762748));
public static final Supplier<Item> TADPOLE_SPAWN_EGG = create("tadpole_spawn_egg", spawnEgg(WBEntityTypes.TADPOLE, 7164733, 1444352));
public static final Supplier<Item> WARDEN_SPAWN_EGG = create("warden_spawn_egg", spawnEgg(WBEntityTypes.WARDEN, 1001033, 3790560));
public static final Supplier<Item> TADPOLE_BUCKET = create("tadpole_bucket", () -> new TadpoleBucketItem(WBEntityTypes.TADPOLE, Fluids.WATER, () -> WBSoundEvents.BUCKED_EMPTY_TADPOLE, new Item.Properties().stacksTo(1).tab(CreativeModeTab.TAB_MISC)));
// Boats
public static final Supplier<Item> MANGROVE_BOAT = create("mangrove_boat", boat(false, BoatTypes.MANGROVE.get()));
public static final Supplier<Item> OAK_CHEST_BOAT = create("oak_chest_boat", boat(true, Boat.Type.OAK));
public static final Supplier<Item> SPRUCE_CHEST_BOAT = create("spruce_chest_boat", boat(true, Boat.Type.SPRUCE));
public static final Supplier<Item> ACACIA_CHEST_BOAT = create("acacia_chest_boat", boat(true, Boat.Type.ACACIA));
public static final Supplier<Item> BIRCH_CHEST_BOAT = create("birch_chest_boat", boat(true, Boat.Type.BIRCH));
public static final Supplier<Item> JUNGLE_CHEST_BOAT = create("jungle_chest_boat", boat(true, Boat.Type.JUNGLE));
public static final Supplier<Item> DARK_OAK_CHEST_BOAT = create("dark_oak_chest_boat", boat(true, Boat.Type.DARK_OAK));
public static final Supplier<Item> MANGROVE_CHEST_BOAT = create("mangrove_chest_boat", boat(true, BoatTypes.MANGROVE.get()));
// Deep Dark
public static final Supplier<Item> ECHO_SHARD = create("echo_shard", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
// Music
public static final Supplier<Item> MUSIC_DISC_5 = create("music_disc_5", () -> RecordItemAccessor.createRecordItem(15, WBSoundEvents.MUSIC_DISC_5, new Item.Properties().stacksTo(1).tab(CreativeModeTab.TAB_MISC).rarity(Rarity.RARE)));
public static final Supplier<Item> DISC_FRAGMENT_5 = create("disc_fragment_5", () -> new DiscFragmentItem(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
private static <T extends Item> Supplier<T> create(String key, Supplier<T> item) {
return ITEMS.register(key, item);
}
@ExpectPlatform
private static Supplier<Item> spawnEgg(Supplier<? extends EntityType<? extends Mob>> mob, int background, int highlight) {
throw new AssertionError();
}
private static Supplier<Item> boat(boolean chested, Boat.Type type) {
return () -> new ChestBoatItem(chested, type, new Item.Properties().stacksTo(1).tab(CreativeModeTab.TAB_TRANSPORTATION));
}
}