使集装箱在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
|
@Override
|
||||||
public void registerItemSubtypes(ISubtypeRegistration registration) {
|
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) -> {
|
registration.registerSubtypeInterpreter(ModItems.POTION_MORTAR_SHELL.get(), (stack, context) -> {
|
||||||
if (!stack.hasTag()) {
|
if (!stack.hasTag()) {
|
||||||
return IIngredientSubtypeInterpreter.NONE;
|
return IIngredientSubtypeInterpreter.NONE;
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.init;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.ModUtils;
|
import com.atsuishio.superbwarfare.ModUtils;
|
||||||
import com.atsuishio.superbwarfare.item.ArmorPlate;
|
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.handgun.*;
|
||||||
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
|
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
|
||||||
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
|
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.DeferredRegister;
|
||||||
import net.minecraftforge.registries.RegistryObject;
|
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)
|
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
public class ModTabs {
|
public class ModTabs {
|
||||||
|
|
||||||
|
@ -117,16 +120,7 @@ public class ModTabs {
|
||||||
.withTabsBefore(AMMO_TAB.getKey())
|
.withTabsBefore(AMMO_TAB.getKey())
|
||||||
.displayItems((param, output) -> ModItems.ITEMS.getEntries().forEach(registryObject -> {
|
.displayItems((param, output) -> ModItems.ITEMS.getEntries().forEach(registryObject -> {
|
||||||
if (registryObject.get() == ModItems.CONTAINER.get()) {
|
if (registryObject.get() == ModItems.CONTAINER.get()) {
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.MK_42.get()));
|
CONTAINER_ENTITIES.stream().map(Supplier::get).forEach(output::accept);
|
||||||
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()));
|
|
||||||
} else {
|
} else {
|
||||||
output.accept(registryObject.get());
|
output.accept(registryObject.get());
|
||||||
if (registryObject.get() == ModItems.ARMOR_PLATE.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.client.renderer.block.ContainerBlockItemRenderer;
|
||||||
import com.atsuishio.superbwarfare.init.ModBlockEntities;
|
import com.atsuishio.superbwarfare.init.ModBlockEntities;
|
||||||
import com.atsuishio.superbwarfare.init.ModBlocks;
|
import com.atsuishio.superbwarfare.init.ModBlocks;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.world.InteractionHand;
|
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.core.object.PlayState;
|
||||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ContainerBlockItem extends BlockItem implements GeoItem {
|
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);
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
public ContainerBlockItem() {
|
public ContainerBlockItem() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue