Changed Mechanical Piston to use TileBlock system

This commit is contained in:
Calclavia 2014-03-11 21:11:46 +08:00
parent 34c6b75057
commit 40c13a9e37
4 changed files with 49 additions and 79 deletions

View file

@ -29,7 +29,6 @@ import resonantinduction.mechanical.logistic.belt.BlockManipulator;
import resonantinduction.mechanical.logistic.belt.TileDetector; import resonantinduction.mechanical.logistic.belt.TileDetector;
import resonantinduction.mechanical.logistic.belt.TileManipulator; import resonantinduction.mechanical.logistic.belt.TileManipulator;
import resonantinduction.mechanical.logistic.belt.TileSorter; import resonantinduction.mechanical.logistic.belt.TileSorter;
import resonantinduction.mechanical.process.crusher.BlockMechanicalPiston;
import resonantinduction.mechanical.process.crusher.TileMechanicalPiston; import resonantinduction.mechanical.process.crusher.TileMechanicalPiston;
import resonantinduction.mechanical.process.grinder.BlockGrindingWheel; import resonantinduction.mechanical.process.grinder.BlockGrindingWheel;
import resonantinduction.mechanical.process.grinder.TileGrinderWheel; import resonantinduction.mechanical.process.grinder.TileGrinderWheel;
@ -126,7 +125,7 @@ public class Mechanical
// Machines // Machines
blockGrinderWheel = contentRegistry.createTile(BlockGrindingWheel.class, TileGrinderWheel.class); blockGrinderWheel = contentRegistry.createTile(BlockGrindingWheel.class, TileGrinderWheel.class);
blockPurifier = contentRegistry.createTile(BlockMixer.class, TileMixer.class); blockPurifier = contentRegistry.createTile(BlockMixer.class, TileMixer.class);
blockMechanicalPiston = contentRegistry.createTile(BlockMechanicalPiston.class, TileMechanicalPiston.class); blockMechanicalPiston = contentRegistry.newBlock(TileMechanicalPiston.class);
OreDictionary.registerOre("gear", itemGear); OreDictionary.registerOre("gear", itemGear);
proxy.preInit(); proxy.preInit();

View file

@ -1,5 +1,6 @@
package resonantinduction.mechanical.energy.grid; package resonantinduction.mechanical.energy.grid;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@ -8,14 +9,25 @@ import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node; import resonantinduction.core.grid.Node;
import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.Mechanical;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.content.module.TileBase;
import calclavia.lib.network.IPacketReceiver; import calclavia.lib.network.IPacketReceiver;
import calclavia.lib.network.PacketHandler; import calclavia.lib.network.PacketHandler;
import calclavia.lib.prefab.tile.TileAdvanced;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
public abstract class TileMechanical extends TileAdvanced implements INodeProvider, IPacketReceiver public abstract class TileMechanical extends TileBase implements INodeProvider, IPacketReceiver
{ {
@Deprecated
public TileMechanical()
{
super(null);
}
public TileMechanical(Material material)
{
super(material);
}
protected static final int PACKET_VELOCITY = Mechanical.contentRegistry.getNextPacketID(); protected static final int PACKET_VELOCITY = Mechanical.contentRegistry.getNextPacketID();
public MechanicalNode mechanicalNode = new PacketMechanicalNode(this).setLoad(0.5f); public MechanicalNode mechanicalNode = new PacketMechanicalNode(this).setLoad(0.5f);

View file

@ -1,51 +0,0 @@
package resonantinduction.mechanical.process.crusher;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import resonantinduction.core.Reference;
import calclavia.lib.prefab.block.BlockRotatable;
import calclavia.lib.render.block.BlockRenderingHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* A block used to build machines.
*
* @author Calclavia
*
*/
public class BlockMechanicalPiston extends BlockRotatable
{
public BlockMechanicalPiston(int id)
{
super(id, Material.wood);
setTextureName(Reference.PREFIX + "material_steel_dark");
rotationMask = Byte.parseByte("111111", 2);
}
@SideOnly(Side.CLIENT)
@Override
public int getRenderType()
{
return BlockRenderingHandler.ID;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
@Override
public TileEntity createNewTileEntity(World world)
{
return new TileMechanicalPiston();
}
}

View file

@ -6,23 +6,27 @@ import codechicken.multipart.MultipartHelper;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.mechanical.energy.grid.TileMechanical; import resonantinduction.mechanical.energy.grid.TileMechanical;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.prefab.tile.IRotatable;
import calclavia.lib.utility.MovementUtility; import calclavia.lib.utility.MovementUtility;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.ReflectionHelper;
public class TileMechanicalPiston extends TileMechanical public class TileMechanicalPiston extends TileMechanical implements IRotatable
{ {
// Planned CalCore option @ConfigInt() // Planned CalCore option @ConfigInt()
private int breakCount = 5; private int breakCount = 5;
public TileMechanicalPiston() public TileMechanicalPiston()
{ {
super(Material.piston);
mechanicalNode = new PacketMechanicalNode(this) mechanicalNode = new PacketMechanicalNode(this)
{ {
@Override @Override
@ -45,6 +49,12 @@ public class TileMechanicalPiston extends TileMechanical
} }
}.setLoad(0.5f); }.setLoad(0.5f);
isOpaqueCube = false;
normalRender = false;
customItemRender = true;
rotationMask = Byte.parseByte("111111", 2);
textureName = "material_steel_dark";
} }
@Override @Override
@ -63,7 +73,7 @@ public class TileMechanicalPiston extends TileMechanical
{ {
TileEntity tileEntity = from.getTileEntity(worldObj); TileEntity tileEntity = from.getTileEntity(worldObj);
if (this.equals(to.getTileEntity(getWorldObj()))) if (this.equals(to.getTileEntity(getWorldObj())))
{ {
return false; return false;
} }
@ -181,28 +191,28 @@ public class TileMechanicalPiston extends TileMechanical
} }
} }
public void hitOreBlock(Block oreBlock, Vector3 blockPos) public void hitOreBlock(Block oreBlock, Vector3 blockPos)
{ {
if (worldObj.isRemote) if (worldObj.isRemote)
{ {
// Spawn hit particles logic only, all other information is done Server Side // Spawn hit particles logic only, all other information is done Server Side
return; return;
} }
else else
{ {
if (this.breakCount <= 0) if (this.breakCount <= 0)
{ {
getWorldObj().setBlockToAir(blockPos.intX(), blockPos.intY(), blockPos.intZ()); getWorldObj().setBlockToAir(blockPos.intX(), blockPos.intY(), blockPos.intZ());
} }
this.breakCount--; this.breakCount--;
} }
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private void spawnParticles(Vector3 blockPos) private void spawnParticles(Vector3 blockPos)
{ {
} }
} }