Add one more workaround for old creative tabs
This commit is contained in:
parent
da901cee87
commit
fa67353eae
26
src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java
Normal file
26
src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java
Normal file
@ -0,0 +1,26 @@
|
||||
package ru.dbotthepony.mc.otm.mixin;
|
||||
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.registry.MCreativeTabsKt;
|
||||
|
||||
@Mixin(Item.class)
|
||||
public abstract class ItemMixin {
|
||||
@Inject(
|
||||
at = @At("HEAD"),
|
||||
method = "getItemCategory()Lnet/minecraft/world/item/CreativeModeTab;",
|
||||
cancellable = true
|
||||
)
|
||||
public void getItemCategory$hook(CallbackInfoReturnable<CreativeModeTab> info) {
|
||||
if (MCreativeTabsKt.getMainTabContents().contains((Item) ((Object) this))) {
|
||||
info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB);
|
||||
} else if (MCreativeTabsKt.getDecorativeTabContents().contains((Item) ((Object) this))) {
|
||||
info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||
import net.minecraft.core.NonNullList
|
||||
import net.minecraft.world.item.DyeColor
|
||||
import net.minecraft.world.item.Item
|
||||
@ -17,13 +18,20 @@ import ru.dbotthepony.mc.otm.core.registryName
|
||||
|
||||
class CreativeTabOutput {
|
||||
private val items = ArrayList<ItemStack>()
|
||||
private val itemTypes = ObjectOpenHashSet<Item>()
|
||||
|
||||
fun accept(value: ItemLike) {
|
||||
items.add(ItemStack(value.asItem()))
|
||||
itemTypes.add(value.asItem())
|
||||
}
|
||||
|
||||
fun accept(value: ItemStack) {
|
||||
items.add(value)
|
||||
itemTypes.add(value.item)
|
||||
}
|
||||
|
||||
operator fun contains(item: Item): Boolean {
|
||||
return item in itemTypes
|
||||
}
|
||||
|
||||
fun fillIn(into: NonNullList<ItemStack>) {
|
||||
|
@ -17,7 +17,8 @@
|
||||
"InventoryChangeTriggerMixin",
|
||||
"MixinPlayer",
|
||||
"HopperBlockEntityMixin",
|
||||
"DispenserBlockEntityMixin"
|
||||
"DispenserBlockEntityMixin",
|
||||
"ItemMixin"
|
||||
],
|
||||
"client": [
|
||||
"MixinGameRenderer",
|
||||
|
Loading…
Reference in New Issue
Block a user