package sh.grimmer.bettershulkers.mixin;

import net.minecraft.client.renderer.blockentity.state.ShulkerBoxRenderState;
import net.minecraft.client.renderer.item.ItemStackRenderState;
import net.minecraft.util.FormattedCharSequence;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import sh.grimmer.bettershulkers.interfaces.BsShulkerBoxRenderState;

import org.jetbrains.annotations.Nullable;

@Mixin(ShulkerBoxRenderState.class)
public class ShulkerBoxRenderStateMixin implements BsShulkerBoxRenderState {

    @Unique
    @Nullable
    private FormattedCharSequence betterShulkers$label;

    @Unique
    @Nullable
    private ItemStackRenderState betterShulkers$displayItem;

    @Nullable
    @Override
    public FormattedCharSequence betterShulkers$getLabel() {
        return betterShulkers$label;
    }

    @Override
    public void betterShulkers$setLabel(@Nullable FormattedCharSequence label) {
        this.betterShulkers$label = label;
    }

    @Nullable
    @Override
    public ItemStackRenderState betterShulkers$getDisplayItem() {
        return betterShulkers$displayItem;
    }

    @Override
    public void betterShulkers$setDisplayItem(@Nullable ItemStackRenderState displayItem) {
        this.betterShulkers$displayItem = displayItem;
    }
}
