使集装箱在JEI里正确显示
This commit is contained in:
parent
cd6fb8e5eb
commit
3869cd084b
3 changed files with 30 additions and 11 deletions
|
@ -38,6 +38,12 @@ public class SbwJEIPlugin implements IModPlugin {
|
|||
|
||||
@Override
|
||||
public void registerItemSubtypes(ISubtypeRegistration registration) {
|
||||
registration.registerSubtypeInterpreter(ModItems.CONTAINER.get(), (ingredient, context) -> {
|
||||
assert ingredient.getTag() != null;
|
||||
return ingredient.getTag().getCompound("BlockEntityTag").getString("EntityType");
|
||||
}
|
||||
);
|
||||
|
||||
registration.registerSubtypeInterpreter(ModItems.POTION_MORTAR_SHELL.get(), (stack, context) -> {
|
||||
if (!stack.hasTag()) {
|
||||
return IIngredientSubtypeInterpreter.NONE;
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.init;
|
|||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.item.ArmorPlate;
|
||||
import com.atsuishio.superbwarfare.item.ContainerBlockItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.*;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
|
||||
|
@ -36,6 +35,10 @@ import net.minecraftforge.fml.common.Mod;
|
|||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static com.atsuishio.superbwarfare.item.ContainerBlockItem.CONTAINER_ENTITIES;
|
||||
|
||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModTabs {
|
||||
|
||||
|
@ -117,16 +120,7 @@ public class ModTabs {
|
|||
.withTabsBefore(AMMO_TAB.getKey())
|
||||
.displayItems((param, output) -> ModItems.ITEMS.getEntries().forEach(registryObject -> {
|
||||
if (registryObject.get() == ModItems.CONTAINER.get()) {
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.MK_42.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.MLE_1934.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.ANNIHILATOR.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.LASER_TOWER.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.SPEEDBOAT.get(), true));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.AH_6.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.LAV_150.get(), true));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.BMP_2.get(), true));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.WHEEL_CHAIR.get()));
|
||||
output.accept(ContainerBlockItem.createInstance(ModEntities.TOM_6.get()));
|
||||
CONTAINER_ENTITIES.stream().map(Supplier::get).forEach(output::accept);
|
||||
} else {
|
||||
output.accept(registryObject.get());
|
||||
if (registryObject.get() == ModItems.ARMOR_PLATE.get()) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.item;
|
|||
import com.atsuishio.superbwarfare.client.renderer.block.ContainerBlockItemRenderer;
|
||||
import com.atsuishio.superbwarfare.init.ModBlockEntities;
|
||||
import com.atsuishio.superbwarfare.init.ModBlocks;
|
||||
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -29,10 +30,28 @@ import software.bernie.geckolib.core.animation.AnimationState;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ContainerBlockItem extends BlockItem implements GeoItem {
|
||||
|
||||
/**
|
||||
* 集装箱可用实体列表
|
||||
*/
|
||||
public static final List<Supplier<ItemStack>> CONTAINER_ENTITIES = List.of(
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.MK_42.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.MLE_1934.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.ANNIHILATOR.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.LASER_TOWER.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.SPEEDBOAT.get(), true),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.AH_6.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.LAV_150.get(), true),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.BMP_2.get(), true),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.WHEEL_CHAIR.get()),
|
||||
() -> ContainerBlockItem.createInstance(ModEntities.TOM_6.get())
|
||||
);
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public ContainerBlockItem() {
|
||||
|
|
Loading…
Add table
Reference in a new issue