aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/MultiTileEntityContainer.java
blob: 3510140c12bde4245fcaaca04f9ab9f174aac20f (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
package gregtech.api.multitileentity;

import static gregtech.api.util.GT_Util.setTileEntity;

import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import gregtech.api.multitileentity.interfaces.IMultiTileEntity;

public class MultiTileEntityContainer {

    public final TileEntity mTileEntity;
    public final MultiTileEntityBlock mBlock;
    public final byte mBlockMetaData;

    public MultiTileEntityContainer(TileEntity aTileEntity, MultiTileEntityBlock aBlock, byte aBlockMetaData) {
        mBlockMetaData = aBlockMetaData;
        mTileEntity = aTileEntity;
        mBlock = aBlock;
    }

    public void setMultiTile(World aWorld, int aX, int aY, int aZ) {
        // This is some complicated Bullshit Greg had to do to make his MTEs work right.
        ((IMultiTileEntity) mTileEntity).setShouldRefresh(false);
        setTileEntity(aWorld, aX, aY, aZ, mTileEntity, false);
        setTileEntity(aWorld, aX, aY, aZ, mBlock, mBlockMetaData, 0, false);
        ((IMultiTileEntity) mTileEntity).setShouldRefresh(true);
        setTileEntity(aWorld, aX, aY, aZ, mTileEntity, true);
    }
}