All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.sefiraat.slimetinker.items.Parts Maven / Gradle / Ivy

package io.github.sefiraat.slimetinker.items;

import io.github.sefiraat.slimetinker.SlimeTinker;
import io.github.sefiraat.slimetinker.itemgroups.ItemGroups;
import io.github.sefiraat.slimetinker.items.templates.PartTemplate;
import io.github.sefiraat.slimetinker.items.templates.RepairkitTemplate;
import io.github.sefiraat.slimetinker.items.workstations.smeltery.DummySmeltery;
import io.github.sefiraat.slimetinker.items.workstations.workbench.DummyWorkbench;
import io.github.sefiraat.slimetinker.utils.ItemUtils;
import io.github.sefiraat.slimetinker.utils.SkullTextures;
import io.github.sefiraat.slimetinker.utils.ThemeUtils;
import io.github.sefiraat.slimetinker.utils.enums.ThemeItemType;
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack;
import io.github.thebusybiscuit.slimefun4.implementation.items.blocks.UnplaceableBlock;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;

public final class Parts {

    private Parts() {
        throw new UnsupportedOperationException("Utility Class");
    }

    public static final String DESC_ERROR = "Error";

    public static final SlimefunItemStack PART_SHOVEL_HEAD_DUMMY = ThemeUtils.themedItemStack(
        "PART_SHOVEL_HEAD_DUMMY",
        SkullTextures.PART_SHOVEL_HEAD,
        ThemeItemType.CAST,
        "Part: Shovel Head",
        ThemeUtils.PASSIVE + "A cast shovel head."
    );

    public static final SlimefunItemStack PART_PICKAXE_HEAD_DUMMY = ThemeUtils.themedItemStack(
        "PART_PICKAXE_HEAD_DUMMY",
        SkullTextures.PART_PICKAXE_HEAD,
        ThemeItemType.CAST,
        "Part: Pickaxe Head",
        ThemeUtils.PASSIVE + "A cast pickaxe head."
    );

    public static final SlimefunItemStack PART_AXE_HEAD_DUMMY = ThemeUtils.themedItemStack(
        "PART_AXE_HEAD_DUMMY",
        SkullTextures.PART_AXE_HEAD,
        ThemeItemType.CAST,
        "Part: Axe Head",
        ThemeUtils.PASSIVE + "A cast axe head."
    );

    public static final SlimefunItemStack PART_HOE_HEAD_DUMMY = ThemeUtils.themedItemStack(
        "PART_HOE_HEAD_DUMMY",
        SkullTextures.PART_HOE_HEAD,
        ThemeItemType.CAST,
        "Part: Hoe Head",
        ThemeUtils.PASSIVE + "A cast hoe head."
    );

    public static final SlimefunItemStack PART_SWORD_BLADE_DUMMY = ThemeUtils.themedItemStack(
        "PART_SWORD_BLADE_DUMMY",
        SkullTextures.PART_SWORD_BLADE,
        ThemeItemType.CAST,
        "Part: Sword Blade",
        ThemeUtils.PASSIVE + "A cast sword blade."
    );

    public static final SlimefunItemStack PART_TOOL_ROD_DUMMY = ThemeUtils.themedItemStack(
        "PART_TOOL_ROD_DUMMY",
        SkullTextures.PART_TOOL_ROD,
        ThemeItemType.CAST,
        "Part: Tool Rod",
        ThemeUtils.PASSIVE + "A cast tool rod."
    );

    public static final SlimefunItemStack PART_BINDING_DUMMY = ThemeUtils.themedItemStack(
        "PART_BINDING_DUMMY",
        SkullTextures.PART_BINDING,
        ThemeItemType.CAST,
        "Part: Binding",
        ThemeUtils.PASSIVE + "A binging to hold parts together."
    );

    public static final SlimefunItemStack PART_HELM_PLATE_DUMMY = ThemeUtils.themedItemStack(
        "PART_HELM_PLATE_DUMMY",
        SkullTextures.PART_HELM_PLATES,
        ThemeItemType.CAST,
        "Part: Helmet Plates",
        ThemeUtils.PASSIVE + "A cast helmet plate set."
    );

    public static final SlimefunItemStack PART_CHEST_PLATE_DUMMY = ThemeUtils.themedItemStack(
        "PART_CHEST_PLATE_DUMMY",
        SkullTextures.PART_CHEST_PLATES,
        ThemeItemType.CAST,
        "Part: Chest Plates",
        ThemeUtils.PASSIVE + "A cast chest plate set."
    );

    public static final SlimefunItemStack PART_LEG_PLATE_DUMMY = ThemeUtils.themedItemStack(
        "PART_LEG_PLATE_DUMMY",
        SkullTextures.PART_LEG_PLATES,
        ThemeItemType.CAST,
        "Part: Leg Plates",
        ThemeUtils.PASSIVE + "A cast legging plate set."
    );

    public static final SlimefunItemStack PART_BOOT_PLATE_DUMMY = ThemeUtils.themedItemStack(
        "PART_BOOT_PLATE_DUMMY",
        SkullTextures.PART_BOOTS_PLATES,
        ThemeItemType.CAST,
        "Part: Boot Plates",
        ThemeUtils.PASSIVE + "A cast legging plate set."
    );

    public static final SlimefunItemStack PART_MAIL_LINKS_DUMMY = ThemeUtils.themedItemStack(
        "PART_MAIL_LINKS_DUMMY",
        SkullTextures.PART_LINKS,
        ThemeItemType.CAST,
        "Part: Mail Links",
        ThemeUtils.PASSIVE + "A flexible mesh of cast metal links"
    );

    public static final SlimefunItemStack PART_GAMBESON_DUMMY = ThemeUtils.themedItemStack(
        "PART_GAMBESON_DUMMY",
        SkullTextures.PART_GAMBESON,
        ThemeItemType.CAST,
        "Part: Gambeson",
        ThemeUtils.PASSIVE + "A fabric under-armour garment"
    );

    public static final SlimefunItemStack PART_REPAIR_KIT_DUMMY = ThemeUtils.themedItemStack(
        "PART_REPAIR_KIT_DUMMY",
        Material.CHEST_MINECART,
        ThemeItemType.CAST,
        "Part: Repair Kit",
        ThemeUtils.PASSIVE + "Repairs broken items in the Repair Bench."
    );

    public static final SlimefunItemStack PART_AXE_HEAD = ThemeUtils.themedItemStack(
        "PART_AXE_HEAD",
        SkullTextures.PART_AXE_HEAD,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_HOE_HEAD = ThemeUtils.themedItemStack(
        "PART_HOE_HEAD",
        SkullTextures.PART_HOE_HEAD,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_PICKAXE_HEAD = ThemeUtils.themedItemStack(
        "PART_PICKAXE_HEAD",
        SkullTextures.PART_PICKAXE_HEAD,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_SHOVEL_HEAD = ThemeUtils.themedItemStack(
        "PART_SHOVEL_HEAD",
        SkullTextures.PART_SHOVEL_HEAD,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_SWORD_BLADE = ThemeUtils.themedItemStack(
        "PART_SWORD_BLADE",
        SkullTextures.PART_SWORD_BLADE,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_TOOL_ROD = ThemeUtils.themedItemStack(
        "PART_TOOL_ROD",
        SkullTextures.PART_TOOL_ROD,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_REPAIR_KIT = ThemeUtils.themedItemStack(
        "PART_REPAIR_KIT",
        Material.CHEST_MINECART,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_BINDING_GENERAL_DISPLAY = ThemeUtils.themedItemStack(
        "PART_BINDING_GENERAL_DISPLAY",
        Material.STRING,
        ThemeItemType.CRAFTING,
        "Binding Material",
        ThemeUtils.PASSIVE + "A material suitable to make binding from.",
        ThemeUtils.PASSIVE + "This is not JUST string, experiment with",
        ThemeUtils.PASSIVE + "similar materials."
    );

    public static final SlimefunItemStack PART_HELM_PLATES = ThemeUtils.themedItemStack(
        "PART_HELM_PLATES",
        SkullTextures.PART_HELM_PLATES,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_CHEST_PLATES = ThemeUtils.themedItemStack(
        "PART_CHEST_PLATES",
        SkullTextures.PART_CHEST_PLATES,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_LEG_PLATES = ThemeUtils.themedItemStack(
        "PART_LEG_PLATES",
        SkullTextures.PART_LEG_PLATES,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_BOOTS_PLATES = ThemeUtils.themedItemStack(
        "PART_BOOTS_PLATES",
        SkullTextures.PART_BOOTS_PLATES,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_MAIL_LINKS = ThemeUtils.themedItemStack(
        "PART_MAIL_LINKS",
        SkullTextures.PART_LINKS,
        ThemeItemType.PART,
        DESC_ERROR,
        ThemeUtils.PASSIVE + DESC_ERROR
    );

    public static final SlimefunItemStack PART_GAMBESON_GENERAL_DISPLAY = ThemeUtils.themedItemStack(
        "PART_GAMBESON_GENERAL_DISPLAY",
        Material.STRING,
        ThemeItemType.CRAFTING,
        "Gambeson Material",
        ThemeUtils.PASSIVE + "A material suitable to make a Gambeson.",
        ThemeUtils.PASSIVE + "This is not JUST string, experiment with",
        ThemeUtils.PASSIVE + "similar materials."
    );

    // Statics for Recipes
    public static final PartTemplate SHOVEL_HEAD = new PartTemplate(ItemGroups.DUMMY, PART_SHOVEL_HEAD, DummySmeltery.TYPE, new ItemStack[9], "Shovel Head");
    public static final PartTemplate PICKAXE_HEAD = new PartTemplate(ItemGroups.DUMMY, PART_PICKAXE_HEAD, DummySmeltery.TYPE, new ItemStack[9], "Pickaxe Head");
    public static final PartTemplate AXE_HEAD = new PartTemplate(ItemGroups.DUMMY, PART_AXE_HEAD, DummySmeltery.TYPE, new ItemStack[9], "Axe Head");
    public static final PartTemplate HOE_HEAD = new PartTemplate(ItemGroups.DUMMY, PART_HOE_HEAD, DummySmeltery.TYPE, new ItemStack[9], "Hoe Head");
    public static final PartTemplate SWORD_BLADE = new PartTemplate(ItemGroups.DUMMY, PART_SWORD_BLADE, DummySmeltery.TYPE, new ItemStack[9], "Sword Blade");
    public static final PartTemplate TOOL_ROD = new PartTemplate(ItemGroups.DUMMY, PART_TOOL_ROD, DummySmeltery.TYPE, new ItemStack[9], "Tool Rod");
    public static final RepairkitTemplate REPAIR_KIT = new RepairkitTemplate(ItemGroups.DUMMY, PART_REPAIR_KIT, DummySmeltery.TYPE, new ItemStack[9], "Repair Kit");
    public static final PartTemplate HELM_PLATE = new PartTemplate(ItemGroups.DUMMY, PART_HELM_PLATES, DummySmeltery.TYPE, new ItemStack[9], "Helmet Plates");
    public static final PartTemplate CHEST_PLATE = new PartTemplate(ItemGroups.DUMMY, PART_CHEST_PLATES, DummySmeltery.TYPE, new ItemStack[9], "Chestplate Plates");
    public static final PartTemplate LEG_PLATE = new PartTemplate(ItemGroups.DUMMY, PART_LEG_PLATES, DummySmeltery.TYPE, new ItemStack[9], "Legging Plates");
    public static final PartTemplate BOOT_PLATE = new PartTemplate(ItemGroups.DUMMY, PART_BOOTS_PLATES, DummySmeltery.TYPE, new ItemStack[9], "Boot Plates");
    public static final PartTemplate MAIL_LINKS = new PartTemplate(ItemGroups.DUMMY, PART_MAIL_LINKS, DummySmeltery.TYPE, new ItemStack[9], "Mail Links");

    public static void set(SlimeTinker p) {

        // Dummies for the recipe book
        new UnplaceableBlock(ItemGroups.PARTS, PART_SHOVEL_HEAD_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_SHOVELHEAD)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_PICKAXE_HEAD_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_PICKAXEHEAD)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_AXE_HEAD_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_AXEHEAD)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_HOE_HEAD_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_HOEHEAD)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_SWORD_BLADE_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_SWORDBLADE)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_TOOL_ROD_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_TOOLROD)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_BINDING_DUMMY, DummyWorkbench.TYPE, new ItemStack[]{
            PART_BINDING_GENERAL_DISPLAY, null, PART_BINDING_GENERAL_DISPLAY,
            null, PART_BINDING_GENERAL_DISPLAY, null,
            PART_BINDING_GENERAL_DISPLAY, null, PART_BINDING_GENERAL_DISPLAY
        }).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_HELM_PLATE_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_HELM_PLATE)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_CHEST_PLATE_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_CHEST_PLATE)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_LEG_PLATE_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_LEG_PLATE)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_BOOT_PLATE_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_BOOT_PLATE)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_MAIL_LINKS_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_MAIL_LINK)).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_GAMBESON_DUMMY, DummyWorkbench.TYPE, new ItemStack[]{
            null, PART_GAMBESON_GENERAL_DISPLAY, PART_BINDING_GENERAL_DISPLAY,
            PART_GAMBESON_GENERAL_DISPLAY, null, PART_GAMBESON_GENERAL_DISPLAY,
            PART_BINDING_GENERAL_DISPLAY, PART_GAMBESON_GENERAL_DISPLAY, null
        }).register(p);
        new UnplaceableBlock(ItemGroups.PARTS, PART_REPAIR_KIT_DUMMY, DummySmeltery.TYPE, ItemUtils.getMiddleOnlyRecipe(Casts.CAST_REPAIRKIT)).register(p);

        // Real ones, not in recipe book due to the variations
        SHOVEL_HEAD.register(p);
        PICKAXE_HEAD.register(p);
        AXE_HEAD.register(p);
        HOE_HEAD.register(p);
        SWORD_BLADE.register(p);
        TOOL_ROD.register(p);

        REPAIR_KIT.register(p);

        HELM_PLATE.register(p);
        CHEST_PLATE.register(p);
        LEG_PLATE.register(p);
        BOOT_PLATE.register(p);

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy