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
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import net.minecraft.core.NonNullList
|
import net.minecraft.core.NonNullList
|
||||||
import net.minecraft.world.item.DyeColor
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
@ -17,13 +18,20 @@ import ru.dbotthepony.mc.otm.core.registryName
|
|||||||
|
|
||||||
class CreativeTabOutput {
|
class CreativeTabOutput {
|
||||||
private val items = ArrayList<ItemStack>()
|
private val items = ArrayList<ItemStack>()
|
||||||
|
private val itemTypes = ObjectOpenHashSet<Item>()
|
||||||
|
|
||||||
fun accept(value: ItemLike) {
|
fun accept(value: ItemLike) {
|
||||||
items.add(ItemStack(value.asItem()))
|
items.add(ItemStack(value.asItem()))
|
||||||
|
itemTypes.add(value.asItem())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun accept(value: ItemStack) {
|
fun accept(value: ItemStack) {
|
||||||
items.add(value)
|
items.add(value)
|
||||||
|
itemTypes.add(value.item)
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun contains(item: Item): Boolean {
|
||||||
|
return item in itemTypes
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fillIn(into: NonNullList<ItemStack>) {
|
fun fillIn(into: NonNullList<ItemStack>) {
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
"InventoryChangeTriggerMixin",
|
"InventoryChangeTriggerMixin",
|
||||||
"MixinPlayer",
|
"MixinPlayer",
|
||||||
"HopperBlockEntityMixin",
|
"HopperBlockEntityMixin",
|
||||||
"DispenserBlockEntityMixin"
|
"DispenserBlockEntityMixin",
|
||||||
|
"ItemMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"MixinGameRenderer",
|
"MixinGameRenderer",
|
||||||
|
Loading…
Reference in New Issue
Block a user