com.magistuarmory.api.item.ModItemsProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of 1.20.2-epic-knights-common Show documentation
Show all versions of 1.20.2-epic-knights-common Show documentation
mod that adds medieval stuff to the game
package com.magistuarmory.api.item;
import com.magistuarmory.client.render.ModRender;
import com.magistuarmory.item.*;
import com.magistuarmory.item.armor.*;
import dev.architectury.event.events.common.LifecycleEvent;
import dev.architectury.platform.Platform;
import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrySupplier;
import net.fabricmc.api.EnvType;
import net.minecraft.class_1738;
import net.minecraft.class_1792;
import net.minecraft.class_1799;
import net.minecraft.class_7924;
import net.minecraft.world.item.*;
import me.shedaniel.cloth.clothconfig.shadowed.blue.endless.jankson.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Supplier;
public abstract class ModItemsProvider
{
public final String modId;
public final DeferredRegister items;
public final List> shieldItems = new ArrayList<>();
public final List> weaponItems = new ArrayList<>();
public final List> dyeableItems = new ArrayList<>();
public final List> armorItems = new ArrayList<>();
public final List> ingredientItems = new ArrayList<>();
public final List> armorDecorationItems = new ArrayList<>();
public final List> rangedWeaponItems = new ArrayList<>();
public ModItemsProvider(String modId)
{
this.modId = modId;
this.items = DeferredRegister.create(modId, class_7924.field_41197);
}
public WeaponsSupply addWeaponsSupply(BiFunction> workshop)
{
return new WeaponsSupply(workshop);
}
public ShieldsSupply addShieldsSupply(BiFunction> workshop, String shieldName)
{
return new ShieldsSupply(workshop, shieldName);
}
public @Nullable RegistrySupplier addKnightItem(String id, ArmorType type, class_1738.class_8051 slot, class_1792.class_1793 properties)
{
if (type.isDisabled())
return null;
RegistrySupplier armor = ItemRegistryHelper.registerKnightItem(this.items, id, type, slot, properties);
this.dyeableItems.add(armor);
this.armorItems.add(armor);
return armor;
}
public @Nullable RegistrySupplier addJoustingItem(String id, ArmorType type, class_1738.class_8051 slot, class_1792.class_1793 properties)
{
if (type.isDisabled())
return null;
RegistrySupplier armor = ItemRegistryHelper.registerJoustingItem(this.items, id, type, slot, properties);
this.armorItems.add(armor);
return armor;
}
public @Nullable RegistrySupplier addMedievalArmorItem(String id, ArmorType type, class_1738.class_8051 slot, class_1792.class_1793 properties)
{
if (type.isDisabled())
return null;
RegistrySupplier armor = ItemRegistryHelper.registerMedievalArmorItem(this.items, id, type, slot, properties);
this.armorItems.add(armor);
return armor;
}
public @Nullable RegistrySupplier addDyeableMedievalArmorItem(String id, ArmorType type, class_1738.class_8051 slot, class_1792.class_1793 properties, int defaultcolor)
{
if (type.isDisabled())
return null;
RegistrySupplier armor = ItemRegistryHelper.registerDyeableMedievalArmorItem(this.items, id, type, slot, properties, defaultcolor);
this.dyeableItems.add(armor);
this.armorItems.add(armor);
return armor;
}
public @Nullable RegistrySupplier addMedievalWeaponItem(String id, class_1792.class_1793 properties, ModItemTier material, WeaponType type)
{
if (type.isDisabled())
return null;
RegistrySupplier weapon = ItemRegistryHelper.registerMedievalWeaponItem(this.items, id, properties, material, type);
this.weaponItems.add(weapon);
return weapon;
}
public @Nullable RegistrySupplier addLanceItem(String id, class_1792.class_1793 properties, ModItemTier material, WeaponType type)
{
if (type.isDisabled())
return null;
RegistrySupplier weapon = ItemRegistryHelper.registerLanceItem(this.items, id, properties, material, type);
this.weaponItems.add(weapon);
return weapon;
}
public RegistrySupplier addIngredientItem(String id, Supplier supplier)
{
RegistrySupplier registrysupplier = this.items.register(id, supplier);
this.ingredientItems.add(registrysupplier);
return registrysupplier;
}
public RegistrySupplier addArmorDecorationItem(String id, Supplier supplier)
{
RegistrySupplier registrysupplier = this.items.register(id, supplier);
this.armorDecorationItems.add(registrysupplier);
return registrysupplier;
}
public RegistrySupplier addDyeableArmorDecorationItem(String id, Supplier supplier)
{
RegistrySupplier registrysupplier = this.items.register(id, supplier);
this.armorDecorationItems.add(registrysupplier);
this.dyeableItems.add(registrysupplier);
return registrysupplier;
}
public @Nullable RegistrySupplier addMedievalShieldItem(String id, String name, class_1792.class_1793 properties, ModItemTier material, boolean paintable, boolean is3d, ShieldType type)
{
if (type.isDisabled())
return null;
RegistrySupplier shield = ItemRegistryHelper.registerMedievalShieldItem(this.items, id, name, properties, material, paintable, is3d, type);
this.shieldItems.add(shield);
return shield;
}
public @Nullable RegistrySupplier addPaviseItem(String id, String name, class_1792.class_1793 properties, ModItemTier material, boolean paintable, boolean is3d, ShieldType type)
{
if (type.isDisabled())
return null;
RegistrySupplier shield = ItemRegistryHelper.registerPaviseItem(this.items, id, name, properties, material, paintable, is3d, type);
this.shieldItems.add(shield);
return shield;
}
public @Nullable RegistrySupplier addMedievalBowItem(String id, int durability, float arrowSpeed, float pullTime)
{
RegistrySupplier bow = this.items.register(id, () -> new MedievalBowItem(new class_1792.class_1793().method_7889(1).method_7895(durability), arrowSpeed, pullTime));
this.rangedWeaponItems.add(bow);
return bow;
}
public @Nullable RegistrySupplier addMedievalCrossbowItem(String id, int durability, float arrowSpeed, int pullTime)
{
RegistrySupplier crossbow = this.items.register(id, () -> new MedievalCrossbowItem(new class_1792.class_1793().method_7889(1).method_7895(durability), arrowSpeed, pullTime));
this.rangedWeaponItems.add(crossbow);
return crossbow;
}
public static class_1799 getDecoratedStack(RegistrySupplier armorsuppler, RegistrySupplier extends ArmorDecorationItem> decorationsuppler)
{
class_1799 armorstack = new class_1799(armorsuppler.get());
ArmorDecorationItem decorationitem = decorationsuppler.get();
class_1799 decorationstack = new class_1799(decorationitem);
decorationitem.decorate(armorstack, decorationstack);
return armorstack;
}
public void init()
{
this.items.register();
if (Platform.getEnv() == EnvType.CLIENT)
LifecycleEvent.SETUP.register(() -> ModRender.setup(this));
}
}