mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
Starting on the Crafty Crate.
This commit is contained in:
1 parent
28a093f3fc
commit
45e3f2f0e9
5 files changed
+61
-19
No files matched your search
@@ -11,9 +11,15 @@
|
||||
*/
|
||||
package vazkii.botania.common.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
@@ -22,13 +28,19 @@ import vazkii.botania.api.lexicon.ILexiconable;
|
||||
import vazkii.botania.api.lexicon.LexiconEntry;
|
||||
import vazkii.botania.client.core.helper.IconHelper;
|
||||
import vazkii.botania.common.block.tile.TileOpenCrate;
|
||||
import vazkii.botania.common.item.block.ItemBlockWithMetadataAndName;
|
||||
import vazkii.botania.common.lexicon.LexiconData;
|
||||
import vazkii.botania.common.lib.LibBlockNames;
|
||||
|
||||
public class BlockOpenCrate extends BlockModContainer implements ILexiconable {
|
||||
|
||||
IIcon iconSide;
|
||||
IIcon iconBottom;
|
||||
|
||||
IIcon iconSideCraft;
|
||||
IIcon iconBottomCraft;
|
||||
|
||||
private static final int SUBTYPES = 2;
|
||||
|
||||
public BlockOpenCrate() {
|
||||
super(Material.wood);
|
||||
setHardness(2.0F);
|
||||
@@ -36,15 +48,39 @@ public class BlockOpenCrate extends BlockModContainer implements ILexiconable {
|
||||
setBlockName(LibBlockNames.OPEN_CRATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldRegisterInNameSet() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block setBlockName(String par1Str) {
|
||||
GameRegistry.registerBlock(this, ItemBlockWithMetadataAndName.class, par1Str);
|
||||
return super.setBlockName(par1Str);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
|
||||
for(int i = 0; i < SUBTYPES; i++)
|
||||
par3List.add(new ItemStack(par1, 1, i));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped(int meta) {
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister par1IconRegister) {
|
||||
blockIcon = IconHelper.forBlock(par1IconRegister, this, 0);
|
||||
iconSide = IconHelper.forBlock(par1IconRegister, this, 0);
|
||||
iconBottom = IconHelper.forBlock(par1IconRegister, this, 1);
|
||||
iconSideCraft = IconHelper.forBlock(par1IconRegister, this, 2);
|
||||
iconBottomCraft = IconHelper.forBlock(par1IconRegister, this, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return side == 0 ? iconBottom : blockIcon;
|
||||
return meta == 0 ? side == 0 ? iconBottom : iconSide : side == 0 ? iconBottomCraft : iconSideCraft;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,24 +38,29 @@ public class TileOpenCrate extends TileSimpleInventory {
|
||||
redstone = true;
|
||||
}
|
||||
|
||||
Block blockBelow = worldObj.getBlock(xCoord, yCoord - 1, zCoord);
|
||||
if(blockBelow.isAir(worldObj, xCoord, yCoord - 1, zCoord)) {
|
||||
if(canRelease()) {
|
||||
ItemStack stack = getStackInSlot(0);
|
||||
if(stack != null) {
|
||||
EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord - 0.5, zCoord + 0.5, stack);
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
|
||||
if(redstone)
|
||||
item.age = -200;
|
||||
|
||||
setInventorySlotContents(0, null);
|
||||
if(!worldObj.isRemote)
|
||||
worldObj.spawnEntityInWorld(item);
|
||||
}
|
||||
if(stack != null)
|
||||
release(stack, redstone);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canRelease() {
|
||||
Block blockBelow = worldObj.getBlock(xCoord, yCoord - 1, zCoord);
|
||||
return blockBelow.isAir(worldObj, xCoord, yCoord - 1, zCoord);
|
||||
}
|
||||
|
||||
public void release(ItemStack stack, boolean redstone) {
|
||||
EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord - 0.5, zCoord + 0.5, stack);
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
|
||||
if(redstone)
|
||||
item.age = -200;
|
||||
|
||||
setInventorySlotContents(0, null);
|
||||
if(!worldObj.isRemote)
|
||||
worldObj.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
@@ -251,7 +251,8 @@ tile.botania:enchanter.name=Mana Enchanter
|
||||
tile.botania:turntable.name=Spreader Turntable
|
||||
tile.botania:tinyPlanetBlock.name=Tiny Planet
|
||||
tile.botania:alchemyCatalyst.name=Alchemy Catalyst
|
||||
tile.botania:openCrate.name=Open Crate
|
||||
tile.botania:openCrate0.name=Open Crate
|
||||
tile.botania:openCrate1.name=Crafty Crate
|
||||
tile.botania:forestEye.name=Eye of the Ancients
|
||||
tile.botania:storage0.name=Block of Manasteel
|
||||
tile.botania:storage1.name=Block of Terrasteel
|
||||
|
||||
File renamed without changes.
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
File renamed without changes.
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Reference in new issue
Block a user