nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/blade-addons-next.git SSH git@git.nageyqma.icu:nageyqma/blade-addons-next.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

2.8 KB · 124 行raw
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
package blade.addon.mixin;

import blade.addon.features.dungeon.f7.invincibility.MaskHolder;
import blade.addon.features.dungeon.f7.invincibility.MaskType;
import blade.addon.features.item.ItemRarity;
import blade.addon.features.item.ItemRarityHolder;
import blade.addon.features.item.PetHolder;
import blade.addon.features.item.ProtectedItemHolder;
import blade.addon.features.item.StarCountHolder;
import net.minecraft.world.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;

@Mixin(ItemStack.class)
public class ItemStackMixin implements ItemRarityHolder, PetHolder, StarCountHolder, ProtectedItemHolder, MaskHolder {

    @Unique
    private ItemRarity itemRarity = null;

    @Unique
    boolean selectedPet = false;

    @Unique
    boolean scannedPet = false;

    @Unique
    boolean scannedStars = false;

    @Unique
    int starCount = 0;

    @Unique
    boolean scannedProtected = false;

    @Unique
    boolean isItemProtected = false;

    @Unique
    MaskType maskType = null;

    @Override
    public ItemRarity blade_addons$getItemRarity() {
        return itemRarity;
    }

    @Override
    public boolean blade_addons$hasItemRarity() {
        return itemRarity != ItemRarity.NONE;
    }

    @Override
    public void blade_addons$setItemRarity(ItemRarity itemRarity) {
        this.itemRarity = itemRarity;
    }

    @Override
    public boolean blade_addons$hasScanned() {
        return itemRarity != null;
    }

    @Override
    public boolean blade_addons$hasScannedPet() {
        return scannedPet;
    }

    @Override
    public void blade_addons$setSelected(boolean selected) {
        selectedPet = selected;
        scannedPet = true;
    }

    @Override
    public boolean blade_addons$isSelected() {
        return selectedPet;
    }

    @Override
    public boolean blade_addons$hasScannedStars() {
        return scannedStars;
    }

    @Override
    public void blade_addons$setStarCount(int count) {
        starCount = count;
        scannedStars = true;
    }

    @Override
    public int blade_addons$getStarCount() {
        return starCount;
    }

    @Override
    public boolean blade_addons$hasScannedProtection() {
        return scannedProtected;
    }

    @Override
    public void blade_addons$setProtected(boolean value) {
        scannedProtected = true;
        isItemProtected = value;
    }

    @Override
    public boolean blade_addons$isProtected() {
        return isItemProtected;
    }

    @Override
    public boolean blade_addons$scannedMask() {
        return maskType != null;
    }

    @Override
    public void blade_addons$setMask(MaskType maskType) {
        this.maskType = maskType;
    }

    @Override
    public MaskType blade_addons$getMask() {
        return maskType;
    }
}