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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
package gregtech.api.interfaces.tileentity;
import gregtech.api.interfaces.IDescribable;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.fluids.IFluidHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* A simple compound Interface for all my TileEntities.
* <p/>
* Also delivers most of the Informations about my TileEntities.
* <p/>
* It can cause Problems to include this Interface!
*/
public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable {
/**
* gets the Error displayed on the GUI
*/
public int getErrorDisplayID();
/**
* sets the Error displayed on the GUI
*/
public void setErrorDisplayID(int aErrorID);
/**
* @return the MetaID of the Block or the MetaTileEntity ID.
*/
public int getMetaTileID();
/**
* Internal Usage only!
*/
public int setMetaTileID(short aID);
/**
* @return the MetaTileEntity which is belonging to this, or null if it doesnt has one.
*/
public IMetaTileEntity getMetaTileEntity();
/**
* Sets the MetaTileEntity.
* Even though this uses the Universal Interface, certain BaseMetaTileEntities only accept one kind of MetaTileEntity
* so only use this if you are sure its the correct one or you will get a Class cast Error.
*
* @param aMetaTileEntity
*/
public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity);
/**
* Causes a general Texture update.
* <p/>
* Only used Client Side to mark Blocks dirty.
*/
public void issueTextureUpdate();
/**
* Causes the Machine to send its initial Data, like Covers and its ID.
*/
public void issueClientUpdate();
/**
* causes Explosion. Strength in Overload-EU
*/
public void doExplosion(long aExplosionEU);
/**
* Sets the Block on Fire in all 6 Directions
*/
public void setOnFire();
/**
* Sets the Block to Fire
*/
public void setToFire();
/**
* Sets the Owner of the Machine. Returns the set Name.
*/
public String setOwnerName(String aName);
/**
* gets the Name of the Machines Owner or "Player" if not set.
*/
public String getOwnerName();
/**
* Gets the UniqueID of the Machines Owner.
*/
public UUID getOwnerUuid();
/**
* Sets the UniqueID of the Machines Owner.
*/
public void setOwnerUuid(UUID uuid);
/**
* Sets initial Values from NBT
*
* @param aNBT is the NBTTag of readFromNBT
* @param aID is the MetaTileEntityID
*/
public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID);
/**
* Called when leftclicking the TileEntity
*/
public void onLeftclick(EntityPlayer aPlayer);
/**
* Called when rightclicking the TileEntity
*/
public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3);
public float getBlastResistance(byte aSide);
public ArrayList<ItemStack> getDrops();
/**
* 255 = 100%
*/
public int getLightOpacity();
public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider);
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ);
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider);
}
|