Created mimic blocks
This commit is contained in:
parent
c201beb87f
commit
9508eec4b0
|
@ -288,6 +288,7 @@ public class Constants
|
||||||
DEMON_CRYSTAL("BlockDemonCrystal"),
|
DEMON_CRYSTAL("BlockDemonCrystal"),
|
||||||
DIMENSIONAL_PORTAL("BlockDimensionalPortal"),
|
DIMENSIONAL_PORTAL("BlockDimensionalPortal"),
|
||||||
BLOOD_TANK("BlockBloodTank"),
|
BLOOD_TANK("BlockBloodTank"),
|
||||||
|
MIMIC("BlockMimic"),
|
||||||
ALCHEMY_TABLE("BlockAlchemyTable");
|
ALCHEMY_TABLE("BlockAlchemyTable");
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
|
|
132
src/main/java/WayofTime/bloodmagic/block/BlockMimic.java
Normal file
132
src/main/java/WayofTime/bloodmagic/block/BlockMimic.java
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
package WayofTime.bloodmagic.block;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.SoundType;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.BlockRenderLayer;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||||
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
|
import WayofTime.bloodmagic.BloodMagic;
|
||||||
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
|
import WayofTime.bloodmagic.block.base.BlockStringContainer;
|
||||||
|
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||||
|
import WayofTime.bloodmagic.tile.TileMimic;
|
||||||
|
import WayofTime.bloodmagic.util.Utils;
|
||||||
|
|
||||||
|
public class BlockMimic extends BlockStringContainer implements IVariantProvider
|
||||||
|
{
|
||||||
|
public static final String[] names = { "nohitbox" };
|
||||||
|
|
||||||
|
public BlockMimic()
|
||||||
|
{
|
||||||
|
super(Material.ROCK, names);
|
||||||
|
|
||||||
|
setUnlocalizedName(Constants.Mod.MODID + ".mimic.");
|
||||||
|
setCreativeTab(BloodMagic.tabBloodMagic);
|
||||||
|
setHardness(2.0F);
|
||||||
|
setResistance(5.0F);
|
||||||
|
setSoundType(SoundType.STONE);
|
||||||
|
setHarvestLevel("pickaxe", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
|
||||||
|
{
|
||||||
|
return NULL_AABB;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ)
|
||||||
|
{
|
||||||
|
TileMimic mimic = (TileMimic) world.getTileEntity(pos);
|
||||||
|
|
||||||
|
if (mimic == null || player.isSneaking())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Utils.insertItemToTile(mimic, player);
|
||||||
|
|
||||||
|
world.notifyBlockUpdate(pos, state, state, 3);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{
|
||||||
|
TileEntity tile = world.getTileEntity(pos);
|
||||||
|
if (tile instanceof TileMimic)
|
||||||
|
{
|
||||||
|
TileMimic mimic = (TileMimic) tile;
|
||||||
|
ItemStack stack = mimic.getStackInSlot(0);
|
||||||
|
if (stack != null && stack.getItem() instanceof ItemBlock)
|
||||||
|
{
|
||||||
|
Block block = ((ItemBlock) stack.getItem()).getBlock();
|
||||||
|
IBlockState mimicState = block.getStateFromMeta(stack.getItemDamage());
|
||||||
|
return mimicState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFullCube(IBlockState state)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisuallyOpaque()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpaqueCube(IBlockState state)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canRenderInLayer(IBlockState state, BlockRenderLayer layer)
|
||||||
|
{
|
||||||
|
return layer == BlockRenderLayer.CUTOUT_MIPPED || layer == BlockRenderLayer.TRANSLUCENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Pair<Integer, String>> getVariants()
|
||||||
|
{
|
||||||
|
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||||
|
for (int i = 0; i < names.length; i++)
|
||||||
|
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity createNewTileEntity(World worldIn, int meta)
|
||||||
|
{
|
||||||
|
return new TileMimic();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package WayofTime.bloodmagic.item.block;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import WayofTime.bloodmagic.block.BlockMimic;
|
||||||
|
|
||||||
|
public class ItemBlockMimic extends ItemBlock
|
||||||
|
{
|
||||||
|
public ItemBlockMimic(Block block)
|
||||||
|
{
|
||||||
|
super(block);
|
||||||
|
setHasSubtypes(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUnlocalizedName(ItemStack stack)
|
||||||
|
{
|
||||||
|
return super.getUnlocalizedName(stack) + BlockMimic.names[stack.getItemDamage()];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetadata(int meta)
|
||||||
|
{
|
||||||
|
return meta;
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ import WayofTime.bloodmagic.block.BlockInputRoutingNode;
|
||||||
import WayofTime.bloodmagic.block.BlockItemRoutingNode;
|
import WayofTime.bloodmagic.block.BlockItemRoutingNode;
|
||||||
import WayofTime.bloodmagic.block.BlockLifeEssence;
|
import WayofTime.bloodmagic.block.BlockLifeEssence;
|
||||||
import WayofTime.bloodmagic.block.BlockMasterRoutingNode;
|
import WayofTime.bloodmagic.block.BlockMasterRoutingNode;
|
||||||
|
import WayofTime.bloodmagic.block.BlockMimic;
|
||||||
import WayofTime.bloodmagic.block.BlockOutputRoutingNode;
|
import WayofTime.bloodmagic.block.BlockOutputRoutingNode;
|
||||||
import WayofTime.bloodmagic.block.BlockPath;
|
import WayofTime.bloodmagic.block.BlockPath;
|
||||||
import WayofTime.bloodmagic.block.BlockPedestal;
|
import WayofTime.bloodmagic.block.BlockPedestal;
|
||||||
|
@ -43,6 +44,7 @@ import WayofTime.bloodmagic.item.block.ItemBlockBloodStoneBrick;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockBloodTank;
|
import WayofTime.bloodmagic.item.block.ItemBlockBloodTank;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockCrystal;
|
import WayofTime.bloodmagic.item.block.ItemBlockCrystal;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockDemonCrystal;
|
import WayofTime.bloodmagic.item.block.ItemBlockDemonCrystal;
|
||||||
|
import WayofTime.bloodmagic.item.block.ItemBlockMimic;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockPath;
|
import WayofTime.bloodmagic.item.block.ItemBlockPath;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockPedestal;
|
import WayofTime.bloodmagic.item.block.ItemBlockPedestal;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
|
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
|
||||||
|
@ -60,6 +62,7 @@ import WayofTime.bloodmagic.tile.TileDimensionalPortal;
|
||||||
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
||||||
import WayofTime.bloodmagic.tile.TileIncenseAltar;
|
import WayofTime.bloodmagic.tile.TileIncenseAltar;
|
||||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||||
|
import WayofTime.bloodmagic.tile.TileMimic;
|
||||||
import WayofTime.bloodmagic.tile.TilePhantomBlock;
|
import WayofTime.bloodmagic.tile.TilePhantomBlock;
|
||||||
import WayofTime.bloodmagic.tile.TilePlinth;
|
import WayofTime.bloodmagic.tile.TilePlinth;
|
||||||
import WayofTime.bloodmagic.tile.TileSoulForge;
|
import WayofTime.bloodmagic.tile.TileSoulForge;
|
||||||
|
@ -108,6 +111,8 @@ public class ModBlocks
|
||||||
public static Block dimensionalPortal;
|
public static Block dimensionalPortal;
|
||||||
public static Block bloodTank;
|
public static Block bloodTank;
|
||||||
|
|
||||||
|
public static Block mimic;
|
||||||
|
|
||||||
public static void init()
|
public static void init()
|
||||||
{
|
{
|
||||||
FluidRegistry.registerFluid(BlockLifeEssence.getLifeEssence());
|
FluidRegistry.registerFluid(BlockLifeEssence.getLifeEssence());
|
||||||
|
@ -143,6 +148,8 @@ public class ModBlocks
|
||||||
dimensionalPortal = registerBlock(new BlockDimensionalPortal(), Constants.BloodMagicBlock.DIMENSIONAL_PORTAL.getRegName());
|
dimensionalPortal = registerBlock(new BlockDimensionalPortal(), Constants.BloodMagicBlock.DIMENSIONAL_PORTAL.getRegName());
|
||||||
bloodTank = registerBlock(new ItemBlockBloodTank(new BlockBloodTank()), Constants.BloodMagicBlock.BLOOD_TANK.getRegName());
|
bloodTank = registerBlock(new ItemBlockBloodTank(new BlockBloodTank()), Constants.BloodMagicBlock.BLOOD_TANK.getRegName());
|
||||||
|
|
||||||
|
mimic = registerBlock(new ItemBlockMimic(new BlockMimic()), Constants.BloodMagicBlock.MIMIC.getRegName());
|
||||||
|
|
||||||
// testSpellBlock = registerBlock(new BlockTestSpellBlock());
|
// testSpellBlock = registerBlock(new BlockTestSpellBlock());
|
||||||
|
|
||||||
BloodMagicAPI.addToTeleposerBlacklist(inputRoutingNode);
|
BloodMagicAPI.addToTeleposerBlacklist(inputRoutingNode);
|
||||||
|
@ -181,6 +188,7 @@ public class ModBlocks
|
||||||
|
|
||||||
GameRegistry.registerTileEntity(TileDimensionalPortal.class, Constants.Mod.MODID + ":" + TileDimensionalPortal.class.getSimpleName());
|
GameRegistry.registerTileEntity(TileDimensionalPortal.class, Constants.Mod.MODID + ":" + TileDimensionalPortal.class.getSimpleName());
|
||||||
GameRegistry.registerTileEntity(TileBloodTank.class, Constants.Mod.MODID + ":" + TileBloodTank.class.getSimpleName());
|
GameRegistry.registerTileEntity(TileBloodTank.class, Constants.Mod.MODID + ":" + TileBloodTank.class.getSimpleName());
|
||||||
|
GameRegistry.registerTileEntity(TileMimic.class, Constants.Mod.MODID + ":" + TileMimic.class.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
|
32
src/main/java/WayofTime/bloodmagic/tile/TileMimic.java
Normal file
32
src/main/java/WayofTime/bloodmagic/tile/TileMimic.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package WayofTime.bloodmagic.tile;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
|
public class TileMimic extends TileInventory
|
||||||
|
{
|
||||||
|
public TileMimic()
|
||||||
|
{
|
||||||
|
super(1, "mimic");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound tagCompound)
|
||||||
|
{
|
||||||
|
super.readFromNBT(tagCompound);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound tagCompound)
|
||||||
|
{
|
||||||
|
super.writeToNBT(tagCompound);
|
||||||
|
|
||||||
|
return tagCompound;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValidForSlot(int slot, ItemStack itemstack)
|
||||||
|
{
|
||||||
|
return slot == 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"textures": { },
|
||||||
|
"model": "cube_all",
|
||||||
|
"uvlock": true
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"type": {
|
||||||
|
"nohitbox": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/LargeBloodStoneBrick"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -250,6 +250,8 @@ tile.BloodMagic.demonCrystalDESTRUCTIVE.name=Destructive Will Crystal Cluster
|
||||||
tile.BloodMagic.demonCrystalVENGEFUL.name=Vengeful Will Crystal Cluster
|
tile.BloodMagic.demonCrystalVENGEFUL.name=Vengeful Will Crystal Cluster
|
||||||
tile.BloodMagic.demonCrystalSTEADFAST.name=Steadfast Will Crystal Cluster
|
tile.BloodMagic.demonCrystalSTEADFAST.name=Steadfast Will Crystal Cluster
|
||||||
|
|
||||||
|
tile.BloodMagic.mimic.nohitbox.name=Ethereal Mimic Block
|
||||||
|
|
||||||
# Fluids
|
# Fluids
|
||||||
fluid.lifeEssence=Life Essence
|
fluid.lifeEssence=Life Essence
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue