blob: 43ebc07b1332877d137cdc22094540f6373455e7 (
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
67
68
69
70
71
72
73
74
75
76
77
|
package tileentities;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
public class TE_ItemProxyCable extends TileEntity {
private static final float THICKNESS = 0.3f;
private byte connections;
private String idCache = null;
public TE_ItemProxyCable() {
connections = 63; // set all connections active until I have something actually control connections
}
public static float getThickness() {
return THICKNESS;
}
/**
* Builds a simple unique identifier for this TileEntity by appending
* the x, y, and z coordinates in a string.
*
* @return unique identifier for this TileEntity
*/
public String getIdentifier() {
if(idCache == null) {
idCache = "" + super.xCoord + super.yCoord + super.zCoord;
return idCache;
} else {
return idCache;
}
}
/**
* 0 0 0 0 0 0 0 0 = 0 -> no connection </br>
* 0 0 0 0 0 0 0 1 = 1 -> down </br>
* 0 0 0 0 0 0 1 0 = 2 -> up </br>
* 0 0 0 0 0 1 0 0 = 4 -> north </br>
* 0 0 0 0 1 0 0 0 = 8 -> south </br>
* 0 0 0 1 0 0 0 0 = 16 -> west </br>
* 0 0 1 0 0 0 0 0 = 32 -> east </br>
*
* @param side
* The side for which to set the connection status.
* @param connected
* Whether this side should be connected or not
*/
public void setConnection(ForgeDirection side, boolean connected) {
switch(side) {
case DOWN: connections = (byte) ((connected) ? connections | 1 : connections ^ 1); break;
case UP: connections = (byte) ((connected) ? connections | 2 : connections ^ 2); break;
case NORTH: connections = (byte) ((connected) ? connections | 4 : connections ^ 4); break;
case SOUTH: connections = (byte) ((connected) ? connections | 8 : connections ^ 8); break;
case WEST: connections = (byte) ((connected) ? connections | 16 : connections ^ 16); break;
case EAST: connections = (byte) ((connected) ? connections | 32 : connections ^ 32); break;
default: break;
}
}
public boolean isConnected(ForgeDirection side) {
switch(side) {
case DOWN: return (connections & 1) == connections;
case UP: return (connections & 2) == connections;
case NORTH: return (connections & 4) == connections;
case SOUTH: return (connections & 8) == connections;
case WEST: return (connections & 16) == connections;
case EAST: return (connections & 32) == connections;
default: return false;
}
}
public byte getConnections() {
return connections;
}
}
|