aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/blocks/BlockCasings8.java
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/gregtech/common/blocks/BlockCasings8.java
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/gregtech/common/blocks/BlockCasings8.java')
-rw-r--r--src/main/java/gregtech/common/blocks/BlockCasings8.java188
1 files changed, 188 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/blocks/BlockCasings8.java b/src/main/java/gregtech/common/blocks/BlockCasings8.java
new file mode 100644
index 0000000000..2e8781bca1
--- /dev/null
+++ b/src/main/java/gregtech/common/blocks/BlockCasings8.java
@@ -0,0 +1,188 @@
+package gregtech.common.blocks;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GTLanguageManager;
+import gregtech.api.util.GTRenderingWorld;
+import gregtech.common.tileentities.machines.multi.MTELargeTurbine;
+
+/**
+ * The casings are split into separate files because they are registered as regular blocks, and a regular block can have
+ * 16 subtypes at most.
+ */
+public class BlockCasings8 extends BlockCasingsAbstract {
+
+ public static boolean mConnectedMachineTextures = true;
+
+ // WATCH OUT FOR TEXTURE ID's
+ public BlockCasings8() {
+ super(ItemCasings8.class, "gt.blockcasings8", MaterialCasings.INSTANCE, 15);
+ /*
+ * DO NOT USE INDEX 15 ! USED HERE: https://github.com/GTNewHorizons/KubaTech/pull/101
+ */
+
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Chemically Inert Machine Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "PTFE Pipe Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mining Neutronium Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Mining Black Plutonium Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Extreme Engine Intake Casing");
+ GTLanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".5.name",
+ "Europium Reinforced Radiation Proof Machine Casing");
+ GTLanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".6.name",
+ "Advanced Rhodium Plated Palladium Machine Casing");
+ GTLanguageManager
+ .addStringLocalization(getUnlocalizedName() + ".7.name", "Advanced Iridium Plated Machine Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Magical Machine Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "HSS-S Turbine Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Radiant Naquadah Alloy Casing");
+ GTLanguageManager
+ .addStringLocalization(getUnlocalizedName() + ".11.name", "Basic Photolithographic Framework Casing");
+ GTLanguageManager
+ .addStringLocalization(getUnlocalizedName() + ".12.name", "Reinforced Photolithographic Framework Casing");
+ GTLanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".13.name",
+ "Radiation Proof Photolithographic Framework Casing");
+ GTLanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Infinity Cooled Casing");
+
+ ItemList.Casing_Chemically_Inert.set(new ItemStack(this, 1, 0));
+ ItemList.Casing_Pipe_Polytetrafluoroethylene.set(new ItemStack(this, 1, 1));
+ ItemList.Casing_MiningNeutronium.set(new ItemStack(this, 1, 2));
+ ItemList.Casing_MiningBlackPlutonium.set(new ItemStack(this, 1, 3));
+ ItemList.Casing_ExtremeEngineIntake.set(new ItemStack(this, 1, 4));
+ ItemList.Casing_AdvancedRadiationProof.set(new ItemStack(this, 1, 5));
+ ItemList.Casing_Advanced_Rhodium_Palladium.set(new ItemStack(this, 1, 6));
+ ItemList.Casing_Advanced_Iridium.set(new ItemStack(this, 1, 7));
+ ItemList.Casing_Magical.set(new ItemStack(this, 1, 8));
+ ItemList.Casing_TurbineGasAdvanced.set(new ItemStack(this, 1, 9));
+ ItemList.RadiantNaquadahAlloyCasing.set(new ItemStack(this, 1, 10));
+ ItemList.BasicPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 11));
+ ItemList.ReinforcedPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 12));
+ ItemList.RadiationProofPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 13));
+ ItemList.InfinityCooledCasing.set(new ItemStack(this, 1, 14));
+ }
+
+ @Override
+ public int getTextureIndex(int aMeta) {
+ return (1 << 7) | (aMeta + 48);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int ordinalSide, int aMeta) {
+ return switch (aMeta) {
+ case 0 -> Textures.BlockIcons.MACHINE_CASING_CHEMICALLY_INERT.getIcon();
+ case 1 -> Textures.BlockIcons.MACHINE_CASING_PIPE_POLYTETRAFLUOROETHYLENE.getIcon();
+ case 2 -> Textures.BlockIcons.MACHINE_CASING_MINING_NEUTRONIUM.getIcon();
+ case 3 -> Textures.BlockIcons.MACHINE_CASING_MINING_BLACKPLUTONIUM.getIcon();
+ case 4 -> Textures.BlockIcons.MACHINE_CASING_EXTREME_ENGINE_INTAKE.getIcon(); // changed color in a
+ // terrible way
+ case 5 -> Textures.BlockIcons.MACHINE_CASING_ADVANCEDRADIATIONPROOF.getIcon();
+ case 6 -> Textures.BlockIcons.MACHINE_CASING_RHODIUM_PALLADIUM.getIcon();
+ case 7 -> Textures.BlockIcons.MACHINE_CASING_IRIDIUM.getIcon();
+ case 8 -> Textures.BlockIcons.MACHINE_CASING_MAGICAL.getIcon();
+ case 9 -> Textures.BlockIcons.MACHINE_CASING_ADVANCEDGAS.getIcon();
+ case 10 -> Textures.BlockIcons.MACHINE_CASING_RADIANT_NAQUADAH_ALLOY.getIcon();
+ case 11 -> Textures.BlockIcons.MACHINE_CASING_PCB_TIER_1.getIcon();
+ case 12 -> Textures.BlockIcons.MACHINE_CASING_PCB_TIER_2.getIcon();
+ case 13 -> Textures.BlockIcons.MACHINE_CASING_PCB_TIER_3.getIcon();
+ case 14 -> Textures.BlockIcons.INFINITY_COOLED_CASING.getIcon();
+ default -> Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon();
+ };
+ }
+
+ public IIcon getTurbineCasing(int meta, int iconIndex, boolean active, boolean hasTurbine) {
+ // noinspection SwitchStatementWithTooFewBranches // "if" is harder to edit
+ return switch (meta) {
+ case 9 -> active ? Textures.BlockIcons.TURBINE_ADVGASACTIVE[iconIndex].getIcon()
+ : hasTurbine ? Textures.BlockIcons.TURBINEADVGAS[iconIndex].getIcon()
+ : Textures.BlockIcons.TURBINE_ADVGASEMPTY[iconIndex].getIcon();
+ default -> active ? Textures.BlockIcons.TURBINE_ACTIVE[iconIndex].getIcon()
+ : hasTurbine ? Textures.BlockIcons.TURBINE[iconIndex].getIcon()
+ : Textures.BlockIcons.TURBINE_EMPTY[iconIndex].getIcon();
+ };
+ }
+
+ private static int isTurbineControllerWithSide(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (!(tTileEntity instanceof IGregTechTileEntity tTile)) return 0;
+ if (tTile.getMetaTileEntity() instanceof MTELargeTurbine turbine && tTile.getFrontFacing()
+ .ordinal() == ordinalSide) {
+ if (turbine.isNewStyleRendering()) return 0;
+ if (tTile.isActive()) return 1;
+ return turbine.hasTurbine() ? 2 : 3;
+ }
+ return 0;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(IBlockAccess aWorld, int xCoord, int yCoord, int zCoord, int ordinalSide) {
+ aWorld = GTRenderingWorld.getInstance(aWorld);
+ final int tMeta = aWorld.getBlockMetadata(xCoord, yCoord, zCoord);
+
+ if (tMeta != 9 || !mConnectedMachineTextures) {
+ return getIcon(ordinalSide, tMeta);
+ }
+
+ int tInvertLeftRightMod = ordinalSide % 2 * 2 - 1;
+
+ switch (ordinalSide / 2) {
+ case 0 -> {
+ for (int i = -1; i < 2; i++) {
+ for (int j = -1; j < 2; j++) {
+ if (i == 0 && j == 0) continue;
+ int tState;
+ if ((tState = isTurbineControllerWithSide(aWorld, xCoord + j, yCoord, zCoord + i, ordinalSide))
+ != 0) {
+ return getTurbineCasing(tMeta, 4 - i * 3 - j, tState == 1, tState == 2);
+ }
+ }
+ }
+ }
+ case 1 -> {
+ for (int i = -1; i < 2; i++) {
+ for (int j = -1; j < 2; j++) {
+ if (i == 0 && j == 0) continue;
+ int tState;
+ if ((tState = isTurbineControllerWithSide(aWorld, xCoord + j, yCoord + i, zCoord, ordinalSide))
+ != 0) {
+ return getTurbineCasing(
+ tMeta,
+ 4 + i * 3 - j * tInvertLeftRightMod,
+ tState == 1,
+ tState == 2);
+ }
+ }
+ }
+ }
+ case 2 -> {
+ for (int i = -1; i < 2; i++) {
+ for (int j = -1; j < 2; j++) {
+ if (i == 0 && j == 0) continue;
+ int tState;
+ if ((tState = isTurbineControllerWithSide(aWorld, xCoord, yCoord + i, zCoord + j, ordinalSide))
+ != 0) {
+ return getTurbineCasing(
+ tMeta,
+ 4 + i * 3 + j * tInvertLeftRightMod,
+ tState == 1,
+ tState == 2);
+ }
+ }
+ }
+ }
+ }
+
+ return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
+ }
+}