aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java
blob: 13c63b75555134d6575a849cad244329977de81f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package gregtech.api.interfaces;

import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.util.GT_CoverBehavior;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;

/**
 * Implemented by the MetaTileEntity of the Redstone Circuit Block
 */
public interface IRedstoneCircuitBlock {
	/**
	 * The Output Direction the Circuit Block is Facing
	 */
    public byte getOutputFacing();
	
    /**
     * sets Output Redstone State at Side
     */
	public boolean setRedstone(byte aStrength, byte aSide);
	
	/**
	 * returns Output Redstone State at Side
	 * Note that setRedstone checks if there is a Difference between the old and the new Setting before consuming any Energy
	 */
	public byte getOutputRedstone(byte aSide);
	
	/**
	 * returns Input Redstone Signal at Side
	 */
	public byte getInputRedstone(byte aSide);
	
	/**
	 * If this Side is Covered up and therefor not doing any Redstone
	 */
	public GT_CoverBehavior getCover(byte aSide);
	
	public int getCoverID(byte aSide);
	
	public int getCoverVariable(byte aSide);
	
	/**
	 * returns whatever Block-ID is adjacent to the Redstone Circuit Block
	 */
	public Block getBlockAtSide(byte aSide);
	
	/**
	 * returns whatever Meta-Value is adjacent to the Redstone Circuit Block
	 */
	public byte getMetaIDAtSide(byte aSide);
	
	/**
	 * returns whatever TileEntity is adjacent to the Redstone Circuit Block
	 */
	public TileEntity getTileEntityAtSide(byte aSide);
	
	/**
	 * returns whatever TileEntity is used by the Redstone Circuit Block
	 */
	public ICoverable getOwnTileEntity();
	
	/**
	 * returns worldObj.rand.nextInt(aRange)
	 */
	public int getRandom(int aRange);
}