aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/glease/ggfab/GGUtils.java
blob: ea349529713d89bab1e6131985236537888a81da (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
package net.glease.ggfab;

import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraftforge.common.util.ForgeDirection;

import java.util.StringJoiner;

public class GGUtils {
    public static boolean isValidTile(IGregTechTileEntity tile) {
        return tile != null && !tile.isDead() && tile.getMetaTileEntity() != null && tile.getMetaTileEntity().getBaseMetaTileEntity() == tile;
    }
    public static boolean isValidTile(IMetaTileEntity mte) {
        return mte != null && mte.getBaseMetaTileEntity() != null && mte.getBaseMetaTileEntity().getMetaTileEntity() == mte && !mte.getBaseMetaTileEntity().isDead();
    }
    public static ChunkCoordinates translate(ChunkCoordinates origin, ForgeDirection direction) {
        return new ChunkCoordinates(origin.posX + direction.offsetX, origin.posY + direction.offsetY, origin.posZ + direction.offsetZ);
    }

    public static String formatTileInfo(String prefix, IMetaTileEntity mte, String delimiter, String suffix) {
        if (!isValidTile(mte)) return prefix + "N/A" + suffix;
        StringJoiner sj = new StringJoiner(delimiter, prefix, suffix);
        IGregTechTileEntity til = mte.getBaseMetaTileEntity();
        sj.add(String.valueOf(til.getXCoord()));
        sj.add(String.valueOf(til.getYCoord()));
        sj.add(String.valueOf(til.getZCoord()));
        return sj.toString();
    }

    public static String formatTileInfo(String prefix, IGregTechTileEntity tile, String delimiter, String suffix) {
        if (!isValidTile(tile)) return prefix + "N/A" + suffix;
        StringJoiner sj = new StringJoiner(delimiter, prefix, suffix);
        sj.add(String.valueOf(tile.getXCoord()));
        sj.add(String.valueOf(tile.getYCoord()));
        sj.add(String.valueOf(tile.getZCoord()));
        return sj.toString();
    }
}