Register item models in the item class itself.
This commit is contained in:
@@ -7,7 +7,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockController;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockController;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileController;
|
import com.raoulvdberge.refinedstorage.tile.TileController;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.block;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.IBlockInfo;
|
import com.raoulvdberge.refinedstorage.block.info.IBlockInfo;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockBase;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockBase;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
@@ -64,7 +64,7 @@ public abstract class BlockBase extends Block {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockBase(this, getDirection(), false);
|
return new ItemBlockBase(this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.RSGui;
|
|||||||
import com.raoulvdberge.refinedstorage.block.enums.ControllerEnergyType;
|
import com.raoulvdberge.refinedstorage.block.enums.ControllerEnergyType;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.ControllerType;
|
import com.raoulvdberge.refinedstorage.block.enums.ControllerType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockController;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockController;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileController;
|
import com.raoulvdberge.refinedstorage.tile.TileController;
|
||||||
import net.minecraft.block.properties.PropertyEnum;
|
import net.minecraft.block.properties.PropertyEnum;
|
||||||
@@ -117,6 +117,6 @@ public class BlockController extends BlockNodeProxy {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockController(this, getDirection());
|
return new ItemBlockController(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,10 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
|
||||||
import com.raoulvdberge.refinedstorage.RSGui;
|
import com.raoulvdberge.refinedstorage.RSGui;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockFluidStorage;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockFluidStorage;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
|
||||||
import net.minecraft.block.properties.PropertyEnum;
|
import net.minecraft.block.properties.PropertyEnum;
|
||||||
@@ -75,7 +74,7 @@ public class BlockFluidStorage extends BlockNode {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockFluidStorage(this, getDirection());
|
return new ItemBlockFluidStorage(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -98,7 +97,7 @@ public class BlockFluidStorage extends BlockNode {
|
|||||||
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
|
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
|
||||||
TileFluidStorage storage = (TileFluidStorage) world.getTileEntity(pos);
|
TileFluidStorage storage = (TileFluidStorage) world.getTileEntity(pos);
|
||||||
|
|
||||||
ItemStack stack = new ItemStack(RSBlocks.FLUID_STORAGE, 1, getMetaFromState(state));
|
ItemStack stack = new ItemStack(this, 1, getMetaFromState(state));
|
||||||
|
|
||||||
stack.setTagCompound(new NBTTagCompound());
|
stack.setTagCompound(new NBTTagCompound());
|
||||||
stack.getTagCompound().setUniqueId(NetworkNodeFluidStorage.NBT_ID, storage.getNode().getStorageId());
|
stack.getTagCompound().setUniqueId(NetworkNodeFluidStorage.NBT_ID, storage.getNode().getStorageId());
|
||||||
|
@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSGui;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockBase;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockBase;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.render.statemapper.StateMapperCTM;
|
import com.raoulvdberge.refinedstorage.render.statemapper.StateMapperCTM;
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
|
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
|
||||||
@@ -85,6 +85,6 @@ public class BlockGrid extends BlockNode {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockBase(this, getDirection(), true);
|
return new ItemBlockBase(this, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.block.enums.PortableGridDiskState;
|
|||||||
import com.raoulvdberge.refinedstorage.block.enums.PortableGridType;
|
import com.raoulvdberge.refinedstorage.block.enums.PortableGridType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsPortableGrid;
|
import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.render.meshdefinition.ItemMeshDefinitionPortableGrid;
|
import com.raoulvdberge.refinedstorage.render.meshdefinition.ItemMeshDefinitionPortableGrid;
|
||||||
@@ -57,7 +57,7 @@ public class BlockPortableGrid extends BlockBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockPortableGrid(this, getDirection());
|
return new ItemBlockPortableGrid(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,11 +1,10 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
|
||||||
import com.raoulvdberge.refinedstorage.RSGui;
|
import com.raoulvdberge.refinedstorage.RSGui;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType;
|
import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockStorage;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockStorage;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorage;
|
import com.raoulvdberge.refinedstorage.tile.TileStorage;
|
||||||
import net.minecraft.block.properties.PropertyEnum;
|
import net.minecraft.block.properties.PropertyEnum;
|
||||||
@@ -75,7 +74,7 @@ public class BlockStorage extends BlockNode {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item createItem() {
|
public Item createItem() {
|
||||||
return new ItemBlockStorage(this, getDirection());
|
return new ItemBlockStorage(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -98,7 +97,7 @@ public class BlockStorage extends BlockNode {
|
|||||||
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
|
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
|
||||||
TileStorage storage = (TileStorage) world.getTileEntity(pos);
|
TileStorage storage = (TileStorage) world.getTileEntity(pos);
|
||||||
|
|
||||||
ItemStack stack = new ItemStack(RSBlocks.STORAGE, 1, getMetaFromState(state));
|
ItemStack stack = new ItemStack(this, 1, getMetaFromState(state));
|
||||||
|
|
||||||
stack.setTagCompound(new NBTTagCompound());
|
stack.setTagCompound(new NBTTagCompound());
|
||||||
stack.getTagCompound().setUniqueId(NetworkNodeStorage.NBT_ID, storage.getNode().getStorageId());
|
stack.getTagCompound().setUniqueId(NetworkNodeStorage.NBT_ID, storage.getNode().getStorageId());
|
||||||
|
@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeStorageMo
|
|||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.tesr.TileEntitySpecialRendererStorageMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
@@ -30,6 +31,8 @@ public class BlockStorageMonitor extends BlockNode {
|
|||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "connected=false,direction=north"));
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "connected=false,direction=north"));
|
||||||
|
|
||||||
|
modelRegistration.setTesr(TileStorageMonitor.class, new TileEntitySpecialRendererStorageMonitor());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -12,8 +12,7 @@ public class BlockInfo implements IBlockInfo {
|
|||||||
private final Material material;
|
private final Material material;
|
||||||
private final SoundType soundType;
|
private final SoundType soundType;
|
||||||
private final float hardness;
|
private final float hardness;
|
||||||
private final String id;
|
private final ResourceLocation id;
|
||||||
private final String modId;
|
|
||||||
private final Object modObject;
|
private final Object modObject;
|
||||||
@Nullable
|
@Nullable
|
||||||
private final Supplier<TileBase> tileSupplier;
|
private final Supplier<TileBase> tileSupplier;
|
||||||
@@ -22,8 +21,7 @@ public class BlockInfo implements IBlockInfo {
|
|||||||
this.material = material;
|
this.material = material;
|
||||||
this.soundType = soundType;
|
this.soundType = soundType;
|
||||||
this.hardness = hardness;
|
this.hardness = hardness;
|
||||||
this.id = id;
|
this.id = new ResourceLocation(modId, id);
|
||||||
this.modId = modId;
|
|
||||||
this.modObject = modObject;
|
this.modObject = modObject;
|
||||||
this.tileSupplier = tileSupplier;
|
this.tileSupplier = tileSupplier;
|
||||||
}
|
}
|
||||||
@@ -40,7 +38,7 @@ public class BlockInfo implements IBlockInfo {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getId() {
|
public ResourceLocation getId() {
|
||||||
return new ResourceLocation(modId, id);
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,26 +1,30 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.IItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public abstract class ItemBase extends Item {
|
public abstract class ItemBase extends Item {
|
||||||
private final String name;
|
protected final IItemInfo info;
|
||||||
|
|
||||||
public ItemBase(String name) {
|
public ItemBase(IItemInfo info) {
|
||||||
this.name = name;
|
this.info = info;
|
||||||
|
|
||||||
setRegistryName(getDomain(), name);
|
setRegistryName(info.getId());
|
||||||
setCreativeTab(RS.INSTANCE.tab);
|
setCreativeTab(RS.INSTANCE.tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getDomain() {
|
@SideOnly(Side.CLIENT)
|
||||||
return RS.ID;
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUnlocalizedName() {
|
public String getUnlocalizedName() {
|
||||||
return "item." + getDomain() + ":" + name;
|
return "item." + info.getId().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,20 +1,36 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemCore extends ItemBase {
|
public class ItemCore extends ItemBase {
|
||||||
public static final int TYPE_CONSTRUCTION = 0;
|
public static final int TYPE_CONSTRUCTION = 0;
|
||||||
public static final int TYPE_DESTRUCTION = 1;
|
public static final int TYPE_DESTRUCTION = 1;
|
||||||
|
|
||||||
public ItemCore() {
|
public ItemCore() {
|
||||||
super("core");
|
super(new ItemInfo(RS.ID, "core"));
|
||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(this, new ResourceLocation(RS.ID, "construction_core"), new ResourceLocation(RS.ID, "destruction_core"));
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_CONSTRUCTION, new ModelResourceLocation(RS.ID + ":construction_core", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_DESTRUCTION, new ModelResourceLocation(RS.ID + ":destruction_core", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -7,9 +7,14 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.Cover;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.Cover;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverType;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverType;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.IItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.model.loader.CustomModelLoaderCover;
|
||||||
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.block.Block;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -24,6 +29,8 @@ import net.minecraft.util.EnumHand;
|
|||||||
import net.minecraft.util.NonNullList;
|
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;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -32,14 +39,22 @@ import java.util.List;
|
|||||||
public class ItemCover extends ItemBase {
|
public class ItemCover extends ItemBase {
|
||||||
private static final String NBT_ITEM = "Item";
|
private static final String NBT_ITEM = "Item";
|
||||||
|
|
||||||
public ItemCover(String name) {
|
public ItemCover(IItemInfo info) {
|
||||||
super(name);
|
super(info);
|
||||||
|
|
||||||
setCreativeTab(RS.INSTANCE.coversTab);
|
setCreativeTab(RS.INSTANCE.coversTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemCover() {
|
public ItemCover() {
|
||||||
this("cover");
|
this(new ItemInfo(RS.ID, "cover"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
|
||||||
|
modelRegistration.addModelLoader(() -> new CustomModelLoaderCover()); // Don't use a method reference here, it crashes the server!
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setItem(ItemStack cover, ItemStack item) {
|
public static void setItem(ItemStack cover, ItemStack item) {
|
||||||
|
@@ -1,15 +1,27 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemCuttingTool extends ItemBase {
|
public class ItemCuttingTool extends ItemBase {
|
||||||
public ItemCuttingTool() {
|
public ItemCuttingTool() {
|
||||||
super("cutting_tool");
|
super(new ItemInfo(RS.ID, "cutting_tool"));
|
||||||
|
|
||||||
setMaxDamage(50 - 1);
|
setMaxDamage(50 - 1);
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isRepairable() {
|
public boolean isRepairable() {
|
||||||
return false;
|
return false;
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.item.capprovider.CapabilityProviderEnergy;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.IItemInfo;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
@@ -21,8 +23,8 @@ public abstract class ItemEnergyItem extends ItemBase {
|
|||||||
|
|
||||||
private int energyCapacity;
|
private int energyCapacity;
|
||||||
|
|
||||||
public ItemEnergyItem(String name, int energyCapacity) {
|
public ItemEnergyItem(IItemInfo info, int energyCapacity) {
|
||||||
super(name);
|
super(info);
|
||||||
|
|
||||||
this.energyCapacity = energyCapacity;
|
this.energyCapacity = energyCapacity;
|
||||||
|
|
||||||
|
@@ -6,7 +6,10 @@ import com.raoulvdberge.refinedstorage.RSItems;
|
|||||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||||
import com.raoulvdberge.refinedstorage.api.util.IFilter;
|
import com.raoulvdberge.refinedstorage.api.util.IFilter;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilterItems;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilterItems;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -17,6 +20,8 @@ import net.minecraft.util.EnumActionResult;
|
|||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -29,11 +34,17 @@ public class ItemFilter extends ItemBase {
|
|||||||
private static final String NBT_ICON = "Icon";
|
private static final String NBT_ICON = "Icon";
|
||||||
|
|
||||||
public ItemFilter() {
|
public ItemFilter() {
|
||||||
super("filter");
|
super(new ItemInfo(RS.ID, "filter"));
|
||||||
|
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk;
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
@@ -7,6 +8,9 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider;
|
|||||||
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
@@ -15,11 +19,10 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.*;
|
||||||
import net.minecraft.util.EnumActionResult;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.NonNullList;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -35,13 +38,32 @@ public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvid
|
|||||||
public static final int TYPE_CREATIVE = 4;
|
public static final int TYPE_CREATIVE = 4;
|
||||||
|
|
||||||
public ItemFluidStorageDisk() {
|
public ItemFluidStorageDisk() {
|
||||||
super("fluid_storage_disk");
|
super(new ItemInfo(RS.ID, "fluid_storage_disk"));
|
||||||
|
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "64k_fluid_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "256k_fluid_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "1024k_fluid_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "4096k_fluid_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "creative_fluid_storage_disk")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_fluid_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_256K, new ModelResourceLocation(RS.ID + ":256k_fluid_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_1024K, new ModelResourceLocation(RS.ID + ":1024k_fluid_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_4096K, new ModelResourceLocation(RS.ID + ":4096k_fluid_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CREATIVE, new ModelResourceLocation(RS.ID + ":creative_fluid_storage_disk", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -1,8 +1,15 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemFluidStoragePart extends ItemBase {
|
public class ItemFluidStoragePart extends ItemBase {
|
||||||
public static final int TYPE_64K = 0;
|
public static final int TYPE_64K = 0;
|
||||||
@@ -11,12 +18,29 @@ public class ItemFluidStoragePart extends ItemBase {
|
|||||||
public static final int TYPE_4096K = 3;
|
public static final int TYPE_4096K = 3;
|
||||||
|
|
||||||
public ItemFluidStoragePart() {
|
public ItemFluidStoragePart() {
|
||||||
super("fluid_storage_part");
|
super(new ItemInfo(RS.ID, "fluid_storage_part"));
|
||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "64k_fluid_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "256k_fluid_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "1024k_fluid_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "4096k_fluid_storage_part")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_fluid_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_256K, new ModelResourceLocation(RS.ID + ":256k_fluid_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_1024K, new ModelResourceLocation(RS.ID + ":1024k_fluid_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_4096K, new ModelResourceLocation(RS.ID + ":4096k_fluid_storage_part", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -1,12 +1,24 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.Cover;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.Cover;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverType;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverType;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemHollowCover extends ItemCover {
|
public class ItemHollowCover extends ItemCover {
|
||||||
public ItemHollowCover() {
|
public ItemHollowCover() {
|
||||||
super("hollow_cover");
|
super(new ItemInfo(RS.ID, "hollow_cover"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -12,6 +16,8 @@ import net.minecraft.util.EnumFacing;
|
|||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -23,11 +29,17 @@ public class ItemNetworkCard extends ItemBase {
|
|||||||
private static final String NBT_DIMENSION = "Dimension";
|
private static final String NBT_DIMENSION = "Dimension";
|
||||||
|
|
||||||
public ItemNetworkCard() {
|
public ItemNetworkCard() {
|
||||||
super("network_card");
|
super(new ItemInfo(RS.ID, "network_card"));
|
||||||
|
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@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) {
|
||||||
Block block = world.getBlockState(pos).getBlock();
|
Block block = world.getBlockState(pos).getBlock();
|
||||||
|
@@ -3,6 +3,8 @@ package com.raoulvdberge.refinedstorage.item;
|
|||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.IItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
@@ -15,6 +17,8 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.util.text.TextComponentTranslation;
|
import net.minecraft.util.text.TextComponentTranslation;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.DimensionManager;
|
import net.minecraftforge.common.DimensionManager;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -26,12 +30,18 @@ public abstract class ItemNetworkItem extends ItemEnergyItem implements INetwork
|
|||||||
private static final String NBT_CONTROLLER_Z = "ControllerZ";
|
private static final String NBT_CONTROLLER_Z = "ControllerZ";
|
||||||
private static final String NBT_DIMENSION_ID = "DimensionID";
|
private static final String NBT_DIMENSION_ID = "DimensionID";
|
||||||
|
|
||||||
public ItemNetworkItem(String name, int energyCapacity) {
|
public ItemNetworkItem(IItemInfo info, int energyCapacity) {
|
||||||
super(name, energyCapacity);
|
super(info, energyCapacity);
|
||||||
|
|
||||||
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
@@ -7,8 +7,13 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContaine
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.color.ItemColorPattern;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.model.baked.BakedModelPattern;
|
||||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
@@ -20,6 +25,8 @@ import net.minecraft.util.EnumActionResult;
|
|||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -38,7 +45,17 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider {
|
|||||||
public static final String NBT_PROCESSING = "Processing";
|
public static final String NBT_PROCESSING = "Processing";
|
||||||
|
|
||||||
public ItemPattern() {
|
public ItemPattern() {
|
||||||
super("pattern");
|
super(new ItemInfo(RS.ID, "pattern"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
|
||||||
|
modelRegistration.addBakedModelOverride(info.getId(), BakedModelPattern::new);
|
||||||
|
|
||||||
|
modelRegistration.addItemColor(this, new ItemColorPattern());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CraftingPattern getPatternFromCache(World world, ItemStack stack) {
|
public static CraftingPattern getPatternFromCache(World world, ItemStack stack) {
|
||||||
|
@@ -1,8 +1,15 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemProcessor extends ItemBase {
|
public class ItemProcessor extends ItemBase {
|
||||||
public static final int TYPE_CUT_BASIC = 0;
|
public static final int TYPE_CUT_BASIC = 0;
|
||||||
@@ -14,12 +21,35 @@ public class ItemProcessor extends ItemBase {
|
|||||||
public static final int TYPE_CUT_SILICON = 6;
|
public static final int TYPE_CUT_SILICON = 6;
|
||||||
|
|
||||||
public ItemProcessor() {
|
public ItemProcessor() {
|
||||||
super("processor");
|
super(new ItemInfo(RS.ID, "processor"));
|
||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "cut_basic_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "cut_improved_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "cut_advanced_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "basic_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "improved_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "advanced_processor"),
|
||||||
|
new ResourceLocation(RS.ID, "cut_silicon")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_CUT_BASIC, new ModelResourceLocation(RS.ID + ":cut_basic_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CUT_IMPROVED, new ModelResourceLocation(RS.ID + ":cut_improved_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CUT_ADVANCED, new ModelResourceLocation(RS.ID + ":cut_advanced_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_BASIC, new ModelResourceLocation(RS.ID + ":basic_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_IMPROVED, new ModelResourceLocation(RS.ID + ":improved_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_ADVANCED, new ModelResourceLocation(RS.ID + ":advanced_processor", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CUT_SILICON, new ModelResourceLocation(RS.ID + ":cut_silicon", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -1,7 +1,20 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemQuartzEnrichedIron extends ItemBase {
|
public class ItemQuartzEnrichedIron extends ItemBase {
|
||||||
public ItemQuartzEnrichedIron() {
|
public ItemQuartzEnrichedIron() {
|
||||||
super("quartz_enriched_iron");
|
super(new ItemInfo(RS.ID, "quartz_enriched_iron"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,10 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -11,6 +15,8 @@ import net.minecraft.util.EnumActionResult;
|
|||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -22,13 +28,19 @@ public class ItemSecurityCard extends ItemBase {
|
|||||||
private static final String NBT_PERMISSION = "Permission_%d";
|
private static final String NBT_PERMISSION = "Permission_%d";
|
||||||
|
|
||||||
public ItemSecurityCard() {
|
public ItemSecurityCard() {
|
||||||
super("security_card");
|
super(new ItemInfo(RS.ID, "security_card"));
|
||||||
|
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
|
|
||||||
addPropertyOverride(new ResourceLocation("active"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
addPropertyOverride(new ResourceLocation("active"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
|
||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
@@ -1,7 +1,20 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemSilicon extends ItemBase {
|
public class ItemSilicon extends ItemBase {
|
||||||
public ItemSilicon() {
|
public ItemSilicon() {
|
||||||
super("silicon");
|
super(new ItemInfo(RS.ID, "silicon"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk;
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
@@ -7,6 +8,9 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider;
|
|||||||
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType;
|
import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
@@ -15,11 +19,10 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.*;
|
||||||
import net.minecraft.util.EnumActionResult;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.NonNullList;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -35,13 +38,33 @@ public class ItemStorageDisk extends ItemBase implements IStorageDiskProvider {
|
|||||||
public static final int TYPE_CREATIVE = 4;
|
public static final int TYPE_CREATIVE = 4;
|
||||||
|
|
||||||
public ItemStorageDisk() {
|
public ItemStorageDisk() {
|
||||||
super("storage_disk");
|
super(new ItemInfo(RS.ID, "storage_disk"));
|
||||||
|
|
||||||
setMaxStackSize(1);
|
setMaxStackSize(1);
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "1k_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "4k_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "16k_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "64k_storage_disk"),
|
||||||
|
new ResourceLocation(RS.ID, "creative_storage_disk")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_1K, new ModelResourceLocation(RS.ID + ":1k_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_4K, new ModelResourceLocation(RS.ID + ":4k_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_16K, new ModelResourceLocation(RS.ID + ":16k_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_storage_disk", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CREATIVE, new ModelResourceLocation(RS.ID + ":creative_storage_disk", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -1,7 +1,20 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemStorageHousing extends ItemBase {
|
public class ItemStorageHousing extends ItemBase {
|
||||||
public ItemStorageHousing() {
|
public ItemStorageHousing() {
|
||||||
super("storage_housing");
|
super(new ItemInfo(RS.ID, "storage_housing"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,15 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemStoragePart extends ItemBase {
|
public class ItemStoragePart extends ItemBase {
|
||||||
public static final int TYPE_1K = 0;
|
public static final int TYPE_1K = 0;
|
||||||
@@ -11,12 +18,29 @@ public class ItemStoragePart extends ItemBase {
|
|||||||
public static final int TYPE_64K = 3;
|
public static final int TYPE_64K = 3;
|
||||||
|
|
||||||
public ItemStoragePart() {
|
public ItemStoragePart() {
|
||||||
super("storage_part");
|
super(new ItemInfo(RS.ID, "storage_part"));
|
||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "1k_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "4k_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "16k_storage_part"),
|
||||||
|
new ResourceLocation(RS.ID, "64k_storage_part")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, TYPE_1K, new ModelResourceLocation(RS.ID + ":1k_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_4K, new ModelResourceLocation(RS.ID + ":4k_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_16K, new ModelResourceLocation(RS.ID + ":16k_storage_part", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_storage_part", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
|
||||||
if (!isInCreativeTab(tab)) {
|
if (!isInCreativeTab(tab)) {
|
||||||
|
@@ -1,12 +1,18 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -23,12 +29,38 @@ public class ItemUpgrade extends ItemBase {
|
|||||||
public static final int TYPE_FORTUNE_3 = 9;
|
public static final int TYPE_FORTUNE_3 = 9;
|
||||||
|
|
||||||
public ItemUpgrade() {
|
public ItemUpgrade() {
|
||||||
super("upgrade");
|
super(new ItemInfo(RS.ID, "upgrade"));
|
||||||
|
|
||||||
setHasSubtypes(true);
|
setHasSubtypes(true);
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModelVariants(
|
||||||
|
this,
|
||||||
|
new ResourceLocation(RS.ID, "upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "range_upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "speed_upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "stack_upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "interdimensional_upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "silk_touch_upgrade"),
|
||||||
|
new ResourceLocation(RS.ID, "fortune_upgrade")
|
||||||
|
);
|
||||||
|
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(RS.ID + ":upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_RANGE, new ModelResourceLocation(RS.ID + ":range_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_SPEED, new ModelResourceLocation(RS.ID + ":speed_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_CRAFTING, new ModelResourceLocation(RS.ID + ":crafting_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_STACK, new ModelResourceLocation(RS.ID + ":stack_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_INTERDIMENSIONAL, new ModelResourceLocation(RS.ID + ":interdimensional_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_SILK_TOUCH, new ModelResourceLocation(RS.ID + ":silk_touch_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_FORTUNE_1, new ModelResourceLocation(RS.ID + ":fortune_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_FORTUNE_2, new ModelResourceLocation(RS.ID + ":fortune_upgrade", "inventory"));
|
||||||
|
modelRegistration.setModel(this, TYPE_FORTUNE_3, new ModelResourceLocation(RS.ID + ":fortune_upgrade", "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasEffect(ItemStack stack) {
|
public boolean hasEffect(ItemStack stack) {
|
||||||
return stack.getMetadata() == TYPE_SILK_TOUCH || getFortuneLevel(stack) > 0;
|
return stack.getMetadata() == TYPE_SILK_TOUCH || getFortuneLevel(stack) > 0;
|
||||||
|
@@ -6,9 +6,14 @@ import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -19,7 +24,13 @@ public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
|
|||||||
public static final String NBT_TAB_PAGE = "TabPage";
|
public static final String NBT_TAB_PAGE = "TabPage";
|
||||||
|
|
||||||
public ItemWirelessCraftingMonitor() {
|
public ItemWirelessCraftingMonitor() {
|
||||||
super("wireless_crafting_monitor", RS.INSTANCE.config.wirelessCraftingMonitorCapacity);
|
super(new ItemInfo(RS.ID, "wireless_crafting_monitor"), RS.INSTANCE.config.wirelessCraftingMonitorCapacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -6,14 +6,25 @@ import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessFluidGrid;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessFluidGrid;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class ItemWirelessFluidGrid extends ItemNetworkItem {
|
public class ItemWirelessFluidGrid extends ItemNetworkItem {
|
||||||
public ItemWirelessFluidGrid() {
|
public ItemWirelessFluidGrid() {
|
||||||
super("wireless_fluid_grid", RS.INSTANCE.config.wirelessFluidGridCapacity);
|
super(new ItemInfo(RS.ID, "wireless_fluid_grid"), RS.INSTANCE.config.wirelessFluidGridCapacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -6,18 +6,30 @@ import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.IItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class ItemWirelessGrid extends ItemNetworkItem {
|
public class ItemWirelessGrid extends ItemNetworkItem {
|
||||||
public ItemWirelessGrid(String name) {
|
public ItemWirelessGrid(IItemInfo info) {
|
||||||
super(name, RS.INSTANCE.config.wirelessGridCapacity);
|
super(info, RS.INSTANCE.config.wirelessGridCapacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemWirelessGrid() {
|
public ItemWirelessGrid() {
|
||||||
super("wireless_grid", RS.INSTANCE.config.wirelessGridCapacity);
|
this(new ItemInfo(RS.ID, "wireless_grid"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void registerModels(IModelRegistration modelRegistration) {
|
||||||
|
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.capprovider;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.integration.forgeenergy.ItemEnergyForge;
|
import com.raoulvdberge.refinedstorage.integration.forgeenergy.ItemEnergyForge;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
@@ -0,0 +1,7 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.item.info;
|
||||||
|
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public interface IItemInfo {
|
||||||
|
ResourceLocation getId();
|
||||||
|
}
|
@@ -0,0 +1,16 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.item.info;
|
||||||
|
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class ItemInfo implements IItemInfo {
|
||||||
|
private final ResourceLocation id;
|
||||||
|
|
||||||
|
public ItemInfo(String modId, String id) {
|
||||||
|
this.id = new ResourceLocation(modId, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,8 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.BlockBase;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
@@ -13,14 +12,14 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class ItemBlockBase extends ItemBlock {
|
public class ItemBlockBase extends ItemBlock {
|
||||||
private BlockDirection direction;
|
private BlockBase block;
|
||||||
|
|
||||||
public ItemBlockBase(Block block, BlockDirection direction, boolean subtypes) {
|
public ItemBlockBase(BlockBase block, boolean subtypes) {
|
||||||
super(block);
|
super(block);
|
||||||
|
|
||||||
setRegistryName(block.getRegistryName());
|
this.block = block;
|
||||||
|
|
||||||
this.direction = direction;
|
setRegistryName(block.getInfo().getId());
|
||||||
|
|
||||||
if (subtypes) {
|
if (subtypes) {
|
||||||
setMaxDamage(0);
|
setMaxDamage(0);
|
||||||
@@ -46,11 +45,11 @@ public class ItemBlockBase extends ItemBlock {
|
|||||||
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState) {
|
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState) {
|
||||||
boolean result = super.placeBlockAt(stack, player, world, pos, side, hitX, hitY, hitZ, newState);
|
boolean result = super.placeBlockAt(stack, player, world, pos, side, hitX, hitY, hitZ, newState);
|
||||||
|
|
||||||
if (result && direction != null) {
|
if (result && block.getDirection() != null) {
|
||||||
TileEntity tile = world.getTileEntity(pos);
|
TileEntity tile = world.getTileEntity(pos);
|
||||||
|
|
||||||
if (tile instanceof TileBase) {
|
if (tile instanceof TileBase) {
|
||||||
((TileBase) tile).setDirection(direction.getFrom(side, pos, player));
|
((TileBase) tile).setDirection(block.getDirection().getFrom(side, pos, player));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@@ -1,10 +1,9 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.block.BlockController;
|
||||||
import com.raoulvdberge.refinedstorage.block.enums.ControllerType;
|
import com.raoulvdberge.refinedstorage.block.enums.ControllerType;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileController;
|
import com.raoulvdberge.refinedstorage.tile.TileController;
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -16,8 +15,8 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemBlockController extends ItemBlockBase {
|
public class ItemBlockController extends ItemBlockBase {
|
||||||
public ItemBlockController(Block block, BlockDirection direction) {
|
public ItemBlockController(BlockController block) {
|
||||||
super(block, direction, true);
|
super(block, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
@@ -1,7 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.BlockBase;
|
||||||
import net.minecraft.block.Block;
|
import com.raoulvdberge.refinedstorage.item.capprovider.CapabilityProviderEnergy;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
@@ -23,8 +23,8 @@ public abstract class ItemBlockEnergyItem extends ItemBlockBase {
|
|||||||
|
|
||||||
private int energyCapacity;
|
private int energyCapacity;
|
||||||
|
|
||||||
public ItemBlockEnergyItem(Block block, BlockDirection direction, int energyCapacity) {
|
public ItemBlockEnergyItem(BlockBase block, int energyCapacity) {
|
||||||
super(block, direction, true);
|
super(block, true);
|
||||||
|
|
||||||
this.energyCapacity = energyCapacity;
|
this.energyCapacity = energyCapacity;
|
||||||
|
|
@@ -1,4 +1,4 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
@@ -7,8 +7,9 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper;
|
import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.BlockFluidStorage;
|
||||||
import net.minecraft.block.Block;
|
import com.raoulvdberge.refinedstorage.item.ItemFluidStorageDisk;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.ItemProcessor;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
@@ -25,8 +26,8 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ItemBlockFluidStorage extends ItemBlockBase {
|
public class ItemBlockFluidStorage extends ItemBlockBase {
|
||||||
public ItemBlockFluidStorage(Block block, BlockDirection direction) {
|
public ItemBlockFluidStorage(BlockFluidStorage block) {
|
||||||
super(block, direction, true);
|
super(block, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
@@ -1,10 +1,10 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.BlockPortableGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
@@ -20,8 +20,8 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemBlockPortableGrid extends ItemBlockEnergyItem {
|
public class ItemBlockPortableGrid extends ItemBlockEnergyItem {
|
||||||
public ItemBlockPortableGrid(Block block, BlockDirection direction) {
|
public ItemBlockPortableGrid(BlockPortableGrid block) {
|
||||||
super(block, direction, RS.INSTANCE.config.portableGridCapacity);
|
super(block, RS.INSTANCE.config.portableGridCapacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
@@ -1,4 +1,4 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item.itemblock;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
@@ -7,8 +7,9 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper;
|
import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper;
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
import com.raoulvdberge.refinedstorage.block.BlockStorage;
|
||||||
import net.minecraft.block.Block;
|
import com.raoulvdberge.refinedstorage.item.ItemProcessor;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.ItemStorageDisk;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
@@ -25,8 +26,8 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ItemBlockStorage extends ItemBlockBase {
|
public class ItemBlockStorage extends ItemBlockBase {
|
||||||
public ItemBlockStorage(Block block, BlockDirection direction) {
|
public ItemBlockStorage(BlockStorage storage) {
|
||||||
super(block, direction, true);
|
super(storage, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
@@ -2,12 +2,18 @@ package com.raoulvdberge.refinedstorage.network;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.proxy.ProxyClient;
|
import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiCraftingStart;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -54,8 +60,17 @@ public class MessageGridCraftingPreviewResponse implements IMessage, IMessageHan
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public IMessage onMessage(MessageGridCraftingPreviewResponse message, MessageContext ctx) {
|
public IMessage onMessage(MessageGridCraftingPreviewResponse message, MessageContext ctx) {
|
||||||
ProxyClient.onReceiveCraftingPreviewResponse(message);
|
Minecraft.getMinecraft().addScheduledTask(() -> {
|
||||||
|
GuiScreen screen = Minecraft.getMinecraft().currentScreen;
|
||||||
|
|
||||||
|
if (screen instanceof GuiCraftingStart) {
|
||||||
|
screen = ((GuiCraftingStart) screen).getParent();
|
||||||
|
}
|
||||||
|
|
||||||
|
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingPreview(screen, message.stacks, message.hash, message.quantity));
|
||||||
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,14 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
package com.raoulvdberge.refinedstorage.network;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.proxy.ProxyClient;
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiCraftingStart;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class MessageGridCraftingStartResponse implements IMessage, IMessageHandler<MessageGridCraftingStartResponse, IMessage> {
|
public class MessageGridCraftingStartResponse implements IMessage, IMessageHandler<MessageGridCraftingStartResponse, IMessage> {
|
||||||
public MessageGridCraftingStartResponse() {
|
public MessageGridCraftingStartResponse() {
|
||||||
@@ -21,8 +25,15 @@ public class MessageGridCraftingStartResponse implements IMessage, IMessageHandl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public IMessage onMessage(MessageGridCraftingStartResponse message, MessageContext ctx) {
|
public IMessage onMessage(MessageGridCraftingStartResponse message, MessageContext ctx) {
|
||||||
ProxyClient.onReceiveCraftingStartResponse();
|
Minecraft.getMinecraft().addScheduledTask(() -> {
|
||||||
|
GuiScreen screen = Minecraft.getMinecraft().currentScreen;
|
||||||
|
|
||||||
|
if (screen instanceof GuiCraftingStart) {
|
||||||
|
((GuiCraftingStart) screen).close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@@ -1,30 +1,21 @@
|
|||||||
package com.raoulvdberge.refinedstorage.proxy;
|
package com.raoulvdberge.refinedstorage.proxy;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
|
||||||
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
|
||||||
import com.raoulvdberge.refinedstorage.block.BlockBase;
|
import com.raoulvdberge.refinedstorage.block.BlockBase;
|
||||||
import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview;
|
import com.raoulvdberge.refinedstorage.item.ItemBase;
|
||||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiCraftingStart;
|
|
||||||
import com.raoulvdberge.refinedstorage.item.*;
|
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreviewResponse;
|
|
||||||
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
import com.raoulvdberge.refinedstorage.render.IModelRegistration;
|
||||||
import com.raoulvdberge.refinedstorage.render.collision.BlockHighlightListener;
|
import com.raoulvdberge.refinedstorage.render.collision.BlockHighlightListener;
|
||||||
import com.raoulvdberge.refinedstorage.render.model.baked.BakedModelPattern;
|
|
||||||
import com.raoulvdberge.refinedstorage.render.model.loader.CustomModelLoaderCover;
|
|
||||||
import com.raoulvdberge.refinedstorage.render.tesr.TileEntitySpecialRendererStorageMonitor;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
|
||||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.renderer.block.statemap.IStateMapper;
|
import net.minecraft.client.renderer.block.statemap.IStateMapper;
|
||||||
import net.minecraft.client.renderer.color.ItemColors;
|
import net.minecraft.client.renderer.color.IItemColor;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.client.event.ModelBakeEvent;
|
import net.minecraftforge.client.event.ModelBakeEvent;
|
||||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||||
@@ -33,26 +24,27 @@ import net.minecraftforge.client.model.ModelLoader;
|
|||||||
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
||||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
||||||
private Map<ResourceLocation, Function<IBakedModel, IBakedModel>> bakedModelOverrides = new HashMap<>();
|
private Map<ResourceLocation, Function<IBakedModel, IBakedModel>> bakedModelOverrides = new HashMap<>();
|
||||||
|
private List<Pair<Item, IItemColor>> itemColors = new LinkedList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preInit(FMLPreInitializationEvent e) {
|
public void preInit(FMLPreInitializationEvent e) {
|
||||||
super.preInit(e);
|
super.preInit(e);
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register(new BlockHighlightListener());
|
MinecraftForge.EVENT_BUS.register(new BlockHighlightListener());
|
||||||
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileStorageMonitor.class, new TileEntitySpecialRendererStorageMonitor());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -61,169 +53,20 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
|||||||
|
|
||||||
RSKeyBindings.init();
|
RSKeyBindings.init();
|
||||||
|
|
||||||
ItemColors itemColors = Minecraft.getMinecraft().getItemColors();
|
itemColors.forEach(p -> Minecraft.getMinecraft().getItemColors().registerItemColorHandler(p.getRight(), p.getKey()));
|
||||||
|
|
||||||
itemColors.registerItemColorHandler((stack, tintIndex) -> {
|
|
||||||
CraftingPattern pattern = ItemPattern.getPatternFromCache(Minecraft.getMinecraft().world, stack);
|
|
||||||
|
|
||||||
if (BakedModelPattern.canDisplayOutput(stack, pattern)) {
|
|
||||||
int color = itemColors.colorMultiplier(pattern.getOutputs().get(0), tintIndex);
|
|
||||||
|
|
||||||
if (color != -1) {
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0xFFFFFF;
|
|
||||||
}, RSItems.PATTERN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void registerModels(ModelRegistryEvent e) {
|
public void registerModels(ModelRegistryEvent e) {
|
||||||
ModelBakery.registerItemVariants(RSItems.STORAGE_DISK,
|
|
||||||
new ResourceLocation("refinedstorage:1k_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:4k_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:16k_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:64k_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:creative_storage_disk")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.STORAGE_PART,
|
|
||||||
new ResourceLocation("refinedstorage:1k_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:4k_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:16k_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:64k_storage_part")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.FLUID_STORAGE_DISK,
|
|
||||||
new ResourceLocation("refinedstorage:64k_fluid_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:256k_fluid_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:1024k_fluid_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:4096k_fluid_storage_disk"),
|
|
||||||
new ResourceLocation("refinedstorage:creative_fluid_storage_disk")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.FLUID_STORAGE_PART,
|
|
||||||
new ResourceLocation("refinedstorage:64k_fluid_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:256k_fluid_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:1024k_fluid_storage_part"),
|
|
||||||
new ResourceLocation("refinedstorage:4096k_fluid_storage_part")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.PROCESSOR,
|
|
||||||
new ResourceLocation("refinedstorage:cut_basic_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:cut_improved_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:cut_advanced_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:basic_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:improved_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:advanced_processor"),
|
|
||||||
new ResourceLocation("refinedstorage:cut_silicon")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.CORE,
|
|
||||||
new ResourceLocation("refinedstorage:construction_core"),
|
|
||||||
new ResourceLocation("refinedstorage:destruction_core")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelBakery.registerItemVariants(RSItems.UPGRADE,
|
|
||||||
new ResourceLocation("refinedstorage:upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:range_upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:speed_upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:stack_upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:interdimensional_upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:silk_touch_upgrade"),
|
|
||||||
new ResourceLocation("refinedstorage:fortune_upgrade")
|
|
||||||
);
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_DISK, ItemStorageDisk.TYPE_1K, new ModelResourceLocation("refinedstorage:1k_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_DISK, ItemStorageDisk.TYPE_4K, new ModelResourceLocation("refinedstorage:4k_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_DISK, ItemStorageDisk.TYPE_16K, new ModelResourceLocation("refinedstorage:16k_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_DISK, ItemStorageDisk.TYPE_64K, new ModelResourceLocation("refinedstorage:64k_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_DISK, ItemStorageDisk.TYPE_CREATIVE, new ModelResourceLocation("refinedstorage:creative_storage_disk", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_PART, ItemStoragePart.TYPE_1K, new ModelResourceLocation("refinedstorage:1k_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_PART, ItemStoragePart.TYPE_4K, new ModelResourceLocation("refinedstorage:4k_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_PART, ItemStoragePart.TYPE_16K, new ModelResourceLocation("refinedstorage:16k_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_PART, ItemStoragePart.TYPE_64K, new ModelResourceLocation("refinedstorage:64k_storage_part", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_DISK, ItemFluidStorageDisk.TYPE_64K, new ModelResourceLocation("refinedstorage:64k_fluid_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_DISK, ItemFluidStorageDisk.TYPE_256K, new ModelResourceLocation("refinedstorage:256k_fluid_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_DISK, ItemFluidStorageDisk.TYPE_1024K, new ModelResourceLocation("refinedstorage:1024k_fluid_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_DISK, ItemFluidStorageDisk.TYPE_4096K, new ModelResourceLocation("refinedstorage:4096k_fluid_storage_disk", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_DISK, ItemFluidStorageDisk.TYPE_CREATIVE, new ModelResourceLocation("refinedstorage:creative_fluid_storage_disk", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_PART, ItemFluidStoragePart.TYPE_64K, new ModelResourceLocation("refinedstorage:64k_fluid_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_PART, ItemFluidStoragePart.TYPE_256K, new ModelResourceLocation("refinedstorage:256k_fluid_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_PART, ItemFluidStoragePart.TYPE_1024K, new ModelResourceLocation("refinedstorage:1024k_fluid_storage_part", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FLUID_STORAGE_PART, ItemFluidStoragePart.TYPE_4096K, new ModelResourceLocation("refinedstorage:4096k_fluid_storage_part", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_CUT_BASIC, new ModelResourceLocation("refinedstorage:cut_basic_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_CUT_IMPROVED, new ModelResourceLocation("refinedstorage:cut_improved_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_CUT_ADVANCED, new ModelResourceLocation("refinedstorage:cut_advanced_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_BASIC, new ModelResourceLocation("refinedstorage:basic_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_IMPROVED, new ModelResourceLocation("refinedstorage:improved_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_ADVANCED, new ModelResourceLocation("refinedstorage:advanced_processor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PROCESSOR, ItemProcessor.TYPE_CUT_SILICON, new ModelResourceLocation("refinedstorage:cut_silicon", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.SILICON, 0, new ModelResourceLocation("refinedstorage:silicon", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.QUARTZ_ENRICHED_IRON, 0, new ModelResourceLocation("refinedstorage:quartz_enriched_iron", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.CORE, ItemCore.TYPE_CONSTRUCTION, new ModelResourceLocation("refinedstorage:construction_core", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.CORE, ItemCore.TYPE_DESTRUCTION, new ModelResourceLocation("refinedstorage:destruction_core", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_GRID, 0, new ModelResourceLocation("refinedstorage:wireless_grid", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_FLUID_GRID, 0, new ModelResourceLocation("refinedstorage:wireless_fluid_grid", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.WIRELESS_CRAFTING_MONITOR, 0, new ModelResourceLocation("refinedstorage:wireless_crafting_monitor", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.PATTERN, 0, new ModelResourceLocation("refinedstorage:pattern", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.STORAGE_HOUSING, 0, new ModelResourceLocation("refinedstorage:storage_housing", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.FILTER, 0, new ModelResourceLocation("refinedstorage:filter", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.NETWORK_CARD, 0, new ModelResourceLocation("refinedstorage:network_card", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.SECURITY_CARD, 0, new ModelResourceLocation("refinedstorage:security_card", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.CUTTING_TOOL, 0, new ModelResourceLocation("refinedstorage:cutting_tool", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, 0, new ModelResourceLocation("refinedstorage:upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_RANGE, new ModelResourceLocation("refinedstorage:range_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_SPEED, new ModelResourceLocation("refinedstorage:speed_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING, new ModelResourceLocation("refinedstorage:crafting_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_STACK, new ModelResourceLocation("refinedstorage:stack_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_INTERDIMENSIONAL, new ModelResourceLocation("refinedstorage:interdimensional_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_SILK_TOUCH, new ModelResourceLocation("refinedstorage:silk_touch_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_1, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_2, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_3, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory"));
|
|
||||||
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.COVER, 0, new ModelResourceLocation("refinedstorage:cover", "inventory"));
|
|
||||||
ModelLoader.setCustomModelResourceLocation(RSItems.HOLLOW_COVER, 0, new ModelResourceLocation("refinedstorage:hollow_cover", "inventory"));
|
|
||||||
|
|
||||||
ModelLoaderRegistry.registerLoader(new CustomModelLoaderCover());
|
|
||||||
|
|
||||||
addBakedModelOverride(new ResourceLocation(RS.ID, "pattern"), BakedModelPattern::new);
|
|
||||||
|
|
||||||
for (BlockBase block : blocksToRegister) {
|
for (BlockBase block : blocksToRegister) {
|
||||||
block.registerModels(this);
|
block.registerModels(this);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void onReceiveCraftingPreviewResponse(MessageGridCraftingPreviewResponse message) {
|
for (Item item : itemsToRegister) {
|
||||||
Minecraft.getMinecraft().addScheduledTask(() -> {
|
if (item instanceof ItemBase) {
|
||||||
GuiScreen screen = Minecraft.getMinecraft().currentScreen;
|
((ItemBase) item).registerModels(this);
|
||||||
|
|
||||||
if (screen instanceof GuiCraftingStart) {
|
|
||||||
screen = ((GuiCraftingStart) screen).getParent();
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
FMLCommonHandler.instance().showGuiScreen(new GuiCraftingPreview(screen, message.stacks, message.hash, message.quantity));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void onReceiveCraftingStartResponse() {
|
|
||||||
Minecraft.getMinecraft().addScheduledTask(() -> {
|
|
||||||
GuiScreen screen = Minecraft.getMinecraft().currentScreen;
|
|
||||||
|
|
||||||
if (screen instanceof GuiCraftingStart) {
|
|
||||||
((GuiCraftingStart) screen).close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -244,7 +87,17 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setModel(Block block, int meta, ModelResourceLocation resource) {
|
public void setModel(Block block, int meta, ModelResourceLocation resource) {
|
||||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), meta, resource);
|
setModel(Item.getItemFromBlock(block), meta, resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setModel(Item item, int meta, ModelResourceLocation resource) {
|
||||||
|
ModelLoader.setCustomModelResourceLocation(item, meta, resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setModelVariants(Item item, ResourceLocation... variants) {
|
||||||
|
ModelBakery.registerItemVariants(item, variants);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -261,4 +114,14 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
|
|||||||
public void setStateMapper(Block block, IStateMapper stateMapper) {
|
public void setStateMapper(Block block, IStateMapper stateMapper) {
|
||||||
ModelLoader.setCustomStateMapper(block, stateMapper);
|
ModelLoader.setCustomStateMapper(block, stateMapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTesr(Class<? extends TileEntity> tile, TileEntitySpecialRenderer tesr) {
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(tile, tesr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addItemColor(Item item, IItemColor itemColor) {
|
||||||
|
itemColors.add(Pair.of(item, itemColor)); // ItemColors is only available in init.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ProxyCommon {
|
public class ProxyCommon {
|
||||||
private List<Item> itemsToRegister = new LinkedList<>();
|
protected List<Item> itemsToRegister = new LinkedList<>();
|
||||||
protected List<BlockBase> blocksToRegister = new LinkedList<>();
|
protected List<BlockBase> blocksToRegister = new LinkedList<>();
|
||||||
|
|
||||||
public void preInit(FMLPreInitializationEvent e) {
|
public void preInit(FMLPreInitializationEvent e) {
|
||||||
|
@@ -5,6 +5,10 @@ import net.minecraft.client.renderer.ItemMeshDefinition;
|
|||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.renderer.block.statemap.IStateMapper;
|
import net.minecraft.client.renderer.block.statemap.IStateMapper;
|
||||||
|
import net.minecraft.client.renderer.color.IItemColor;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.client.model.ICustomModelLoader;
|
import net.minecraftforge.client.model.ICustomModelLoader;
|
||||||
|
|
||||||
@@ -16,9 +20,18 @@ public interface IModelRegistration {
|
|||||||
|
|
||||||
void setModel(Block block, int meta, ModelResourceLocation resource);
|
void setModel(Block block, int meta, ModelResourceLocation resource);
|
||||||
|
|
||||||
|
void setModel(Item item, int meta, ModelResourceLocation resource);
|
||||||
|
|
||||||
|
void setModelVariants(Item item, ResourceLocation... variants);
|
||||||
|
|
||||||
void setModelMeshDefinition(Block block, ItemMeshDefinition meshDefinition);
|
void setModelMeshDefinition(Block block, ItemMeshDefinition meshDefinition);
|
||||||
|
|
||||||
|
// Supplier needed to avoid server crash.
|
||||||
void addModelLoader(Supplier<ICustomModelLoader> modelLoader);
|
void addModelLoader(Supplier<ICustomModelLoader> modelLoader);
|
||||||
|
|
||||||
void setStateMapper(Block block, IStateMapper stateMapper);
|
void setStateMapper(Block block, IStateMapper stateMapper);
|
||||||
|
|
||||||
|
void setTesr(Class<? extends TileEntity> tile, TileEntitySpecialRenderer tesr);
|
||||||
|
|
||||||
|
void addItemColor(Item item, IItemColor itemColor);
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,25 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.render.color;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.ItemPattern;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.model.baked.BakedModelPattern;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.color.IItemColor;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class ItemColorPattern implements IItemColor {
|
||||||
|
@Override
|
||||||
|
public int colorMultiplier(ItemStack stack, int tintIndex) {
|
||||||
|
CraftingPattern pattern = ItemPattern.getPatternFromCache(Minecraft.getMinecraft().world, stack);
|
||||||
|
|
||||||
|
if (BakedModelPattern.canDisplayOutput(stack, pattern)) {
|
||||||
|
int color = Minecraft.getMinecraft().getItemColors().colorMultiplier(pattern.getOutputs().get(0), tintIndex);
|
||||||
|
|
||||||
|
if (color != -1) {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0xFFFFFF;
|
||||||
|
}
|
||||||
|
}
|
@@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider;
|
|||||||
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid;
|
import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
|
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||||
|
@@ -23,8 +23,8 @@ import com.raoulvdberge.refinedstorage.gui.GuiBase;
|
|||||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate;
|
import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate;
|
||||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@@ -31,8 +31,8 @@ import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
|||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerTile;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerTile;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.itemblock.ItemBlockPortableGrid;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
|
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
|
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
|
||||||
|
Reference in New Issue
Block a user