Add covers to JEI.
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
package com.raoulvdberge.refinedstorage;
|
package com.raoulvdberge.refinedstorage;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.command.CommandCreateDisk;
|
import com.raoulvdberge.refinedstorage.command.CommandCreateDisk;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.ItemCover;
|
||||||
import com.raoulvdberge.refinedstorage.proxy.ProxyCommon;
|
import com.raoulvdberge.refinedstorage.proxy.ProxyCommon;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fluids.FluidRegistry;
|
import net.minecraftforge.fluids.FluidRegistry;
|
||||||
import net.minecraftforge.fml.common.FMLLog;
|
import net.minecraftforge.fml.common.FMLLog;
|
||||||
@@ -40,6 +42,16 @@ public final class RS {
|
|||||||
return new ItemStack(RSItems.STORAGE_HOUSING);
|
return new ItemStack(RSItems.STORAGE_HOUSING);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
public final CreativeTabs coversTab = new CreativeTabs(ID + ".covers") {
|
||||||
|
@Override
|
||||||
|
public ItemStack getTabIconItem() {
|
||||||
|
ItemStack stack = new ItemStack(RSItems.COVER);
|
||||||
|
|
||||||
|
ItemCover.setItem(stack, new ItemStack(Blocks.STONE));
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void preInit(FMLPreInitializationEvent e) {
|
public void preInit(FMLPreInitializationEvent e) {
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemCover;
|
import com.raoulvdberge.refinedstorage.item.ItemCover;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockGlass;
|
||||||
|
import net.minecraft.block.BlockStainedGlass;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -138,7 +140,7 @@ public class CoverManager {
|
|||||||
|
|
||||||
IBlockState state = getBlockState(item);
|
IBlockState state = getBlockState(item);
|
||||||
|
|
||||||
return block != null && state != null && isModelSupported(state) && block.isTopSolid(state) && !block.getTickRandomly() && !block.hasTileEntity(state);
|
return block != null && state != null && ((isModelSupported(state) && block.isTopSolid(state) && !block.getTickRandomly() && !block.hasTileEntity(state)) || block instanceof BlockGlass || block instanceof BlockStainedGlass);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isModelSupported(IBlockState state) {
|
private static boolean isModelSupported(IBlockState state) {
|
||||||
|
|||||||
@@ -1,18 +1,26 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileNode;
|
import com.raoulvdberge.refinedstorage.tile.TileNode;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.EnumActionResult;
|
import net.minecraft.util.EnumActionResult;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.NonNullList;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
@@ -25,6 +33,8 @@ public class ItemCover extends ItemBase {
|
|||||||
|
|
||||||
public ItemCover() {
|
public ItemCover() {
|
||||||
super("cover");
|
super("cover");
|
||||||
|
|
||||||
|
setCreativeTab(RS.INSTANCE.coversTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setItem(ItemStack cover, ItemStack item) {
|
public static void setItem(ItemStack cover, ItemStack item) {
|
||||||
@@ -55,6 +65,35 @@ public class ItemCover extends ItemBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
|
if (!isInCreativeTab(tab)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Block block : Block.REGISTRY) {
|
||||||
|
Item item = Item.getItemFromBlock(block);
|
||||||
|
|
||||||
|
if (item == Items.AIR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
NonNullList<ItemStack> subBlocks = NonNullList.create();
|
||||||
|
|
||||||
|
block.getSubBlocks(CreativeTabs.SEARCH, subBlocks);
|
||||||
|
|
||||||
|
for (ItemStack subBlock : subBlocks) {
|
||||||
|
if (CoverManager.isValidCover(subBlock)) {
|
||||||
|
ItemStack stack = new ItemStack(RSItems.COVER);
|
||||||
|
|
||||||
|
setItem(stack, subBlock);
|
||||||
|
|
||||||
|
items.add(stack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
|
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
|
||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
itemGroup.refinedstorage=Refined Storage
|
itemGroup.refinedstorage=Refined Storage
|
||||||
|
itemGroup.refinedstorage.covers=Refined Storage Covers
|
||||||
|
|
||||||
key.refinedstorage.focusSearchBar=Focus Grid Search Bar
|
key.refinedstorage.focusSearchBar=Focus Grid Search Bar
|
||||||
key.refinedstorage.clearGridCraftingMatrix=Clear Grid Crafting Matrix
|
key.refinedstorage.clearGridCraftingMatrix=Clear Grid Crafting Matrix
|
||||||
|
|||||||
Reference in New Issue
Block a user