mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
* `/locate` command * custom spawning rules (eg. make something always spawn at 0,0) * code structure reorg * extra logging for misconfigured structures
102 lines
2.5 KiB
Java
102 lines
2.5 KiB
Java
package com.hbm.blocks.generic;
|
|
|
|
import java.util.List;
|
|
|
|
import com.hbm.blocks.ITooltipProvider;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
|
|
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.World;
|
|
|
|
public class BlockPipe extends Block implements ITooltipProvider, INBTBlockTransformable {
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private IIcon sideIcon;
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon frameIcon;
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon meshIcon;
|
|
|
|
private String sideString;
|
|
public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass
|
|
|
|
public BlockPipe(Material mat, String tex, int rType) {
|
|
super(mat);
|
|
this.sideString = tex;
|
|
this.rType = rType;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerBlockIcons(IIconRegister iconRegister) {
|
|
super.registerBlockIcons(iconRegister);
|
|
this.sideIcon = iconRegister.registerIcon(sideString);
|
|
this.frameIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_frame");
|
|
this.meshIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_mesh");
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon getIcon(int side, int metadata) {
|
|
return side == 1 ? this.blockIcon : (side == 0 ? this.blockIcon : this.sideIcon);
|
|
}
|
|
|
|
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
|
|
|
@Override
|
|
public int getRenderType() {
|
|
return renderID;
|
|
}
|
|
|
|
@Override
|
|
public boolean isOpaqueCube() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean renderAsNormalBlock() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) {
|
|
int j1 = meta & 3;
|
|
byte b0 = 0;
|
|
|
|
switch(side) {
|
|
case 0:
|
|
case 1:
|
|
b0 = 0;
|
|
break;
|
|
case 2:
|
|
case 3:
|
|
b0 = 8;
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
b0 = 4;
|
|
}
|
|
|
|
return j1 | b0;
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
|
list.add("Purely decorative");
|
|
}
|
|
|
|
@Override
|
|
public int transformMeta(int meta, int coordBaseMode) {
|
|
return INBTBlockTransformable.transformMetaPillar(meta, coordBaseMode);
|
|
}
|
|
|
|
} |