diff options
11 files changed, 604 insertions, 380 deletions
diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java index 23887aebbf..54a2162541 100644 --- a/src/main/java/gregtech/api/enums/SoundResource.java +++ b/src/main/java/gregtech/api/enums/SoundResource.java @@ -59,6 +59,9 @@ public enum SoundResource { GT_MACHINES_FUSION_LOOP(230, GregTech.ID, "machines.FusionLoop"), GT_MACHINES_DISTILLERY_LOOP(231, GregTech.ID, "machines.DistilleryLoop"), GT_MACHINES_PLASMAFORGE_LOOP(232, GregTech.ID, "machines.PlasmaForgeLoop"), + GT_MACHINES_STEAM_WASHER_LOOP(233, GregTech.ID, "machines.SteamWasherLoop"), + GT_MACHINES_WATER_PUMP_LOOP(234, GregTech.ID, "machines.WaterPumpLoop"), + GT_MACHINES_STEAM_CENTRIFUGE_LOOP(235, GregTech.ID, "machines.SteamCentrifugeLoop"), GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"), GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"), diff --git a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java index a85a2d60c1..8094938f7b 100644 --- a/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java +++ b/src/main/java/gregtech/loaders/load/GT_Loader_MetaTileEntities_Recipes.java @@ -227,6 +227,7 @@ import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.NotEnoughItems; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -4948,8 +4949,15 @@ public class GT_Loader_MetaTileEntities_Recipes implements Runnable { GT_ModHandler.addCraftingRecipe( ItemList.Hatch_Output_ULV.get(1L), bits, - new Object[] { " S ", " F ", " P ", 'S', GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1), - 'F', ItemList.Hull_ULV.get(1), 'P', ItemList.IC2_Resin.get(1) }); + new Object[] { "ASA", "AFA", "APA", 'S', getModItem(BuildCraftFactory.ID, "tankBlock", 1), 'F', + ItemList.Hull_ULV.get(1), "A", OrePrefixes.plate.get(Materials.Rubber), 'P', + OrePrefixes.ring.get(Materials.Rubber) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Hatch_Input_ULV.get(1L), + bits, + new Object[] { "ASA", "AFA", "APA", 'S', getModItem(BuildCraftFactory.ID, "tankBlock", 1), 'F', + ItemList.Hull_ULV.get(1), "A", OrePrefixes.plate.get(Materials.Rubber), 'P', + OrePrefixes.gear.get(Materials.Rubber) }); GT_ModHandler.addCraftingRecipe( ItemList.Casing_Firebox_Steel.get(1L), bits, diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java index f4637fdd39..fb9a81dca2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCentrifuge.java @@ -2,6 +2,8 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.s import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.GregTech_API.*; +import static gregtech.api.enums.GT_HatchElement.OutputHatch; +import static gregtech.api.enums.GT_Values.AuthorEvgenWarGold; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import java.util.ArrayList; @@ -16,6 +18,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -29,7 +32,10 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -72,13 +78,18 @@ public class GregtechMetaTileEntity_SteamCentrifuge private static final String STRUCTUR_PIECE_MAIN = "main"; private IStructureDefinition<GregtechMetaTileEntity_SteamCentrifuge> STRUCTURE_DEFINITION = null; - private final String[][] shape = new String[][] { { " AAA ", "AAAAA", "AAAAA", "AAAAA", " AAA " }, - { " ", " ABA ", " BDB ", " ABA ", " " }, { " A ", " ACA ", "ACDCA", " ACA ", " A " }, - { " A~A ", "AABAA", "ABDBA", "AABAA", " AAA " }, { " AAA ", "AAAAA", "AAAAA", "AAAAA", " AAA " } }; - - private static final int horizontalOffSet = 2; - private static final int verticalOffSet = 3; - private static final int depthOffSet = 0; + // spotless:off + private final String[][] shape = new String[][] { + { " AAA ", "AAAAA", "AAAAA", "AAAAA", " AAA " }, + { " ", " ABA ", " BDB ", " ABA ", " " }, + { " A ", " ACA ", "ACDCA", " ACA ", " A " }, + { " A~A ", "AABAA", "ABDBA", "AABAA", " AAA " }, + { " AAA ", "AAAAA", "AAAAA", "AAAAA", " AAA " } }; + //spotless:on + + private static final int HORIZONTAL_OFF_SET = 2; + private static final int VERTICAL_OFF_SET = 3; + private static final int DEPTH_OFF_SET = 0; private int tierGearBoxCasing = -1; private int tierPipeCasing = -1; @@ -89,8 +100,6 @@ public class GregtechMetaTileEntity_SteamCentrifuge private int tierMachine = 1; - private String tMachineCasing = "Solid Bronze or Steel Machine Casing"; - public int getTierMachineCasing(Block block, int meta) { if (block == sBlockCasings1 && 10 == meta) { tCountCasing++; @@ -103,24 +112,18 @@ public class GregtechMetaTileEntity_SteamCentrifuge return 0; } - private String tFireBoxCasing = "Bronze or Steel Firebox Casing"; - public static int getTierFireBoxCasing(Block block, int meta) { if (block == sBlockCasings3 && 13 == meta) return 1; if (block == sBlockCasings3 && 14 == meta) return 2; return 0; } - private String tGearBoxCasing = "Bronze or Steel Gear Box Casing"; - public static int getTierGearBoxCasing(Block block, int meta) { if (block == sBlockCasings2 && 2 == meta) return 1; if (block == sBlockCasings2 && 3 == meta) return 2; return 0; } - private String tPipeCasing = "Bronze or Steel Pipe Casing"; - public static int getTierPipeCasing(Block block, int meta) { if (block == sBlockCasings2 && 12 == meta) return 1; if (block == sBlockCasings2 && 13 == meta) return 2; @@ -131,94 +134,43 @@ public class GregtechMetaTileEntity_SteamCentrifuge for (GT_MetaTileEntity_Hatch h : mSteamInputs) h.updateTexture(getCasingTextureID()); for (GT_MetaTileEntity_Hatch h : mSteamOutputs) h.updateTexture(getCasingTextureID()); for (GT_MetaTileEntity_Hatch h : mSteamInputFluids) h.updateTexture(getCasingTextureID()); + for (GT_MetaTileEntity_Hatch h : mOutputHatches) h.updateTexture(getCasingTextureID()); } - protected static String getNickname() { - return "EvgenWarGold"; - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setInteger("tierMachine", tierMachine); + private int getCasingTextureID() { + if (tierGearBoxCasing == 2 || tierPipeCasing == 2 || tierFireBoxCasing == 2 || tierMachineCasing == 2) + return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); + return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); } @Override - public void loadNBTData(final NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - tierMachine = aNBT.getInteger("tierMachine"); + public void onValueUpdate(byte aValue) { + tierMachineCasing = aValue; } @Override - public String[] getInfoData() { - ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); - info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); - info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); - return info.toArray(new String[0]); + public byte getUpdateData() { + return (byte) tierMachineCasing; } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, - IWailaConfigHandler config) { - super.getWailaBody(itemStack, currenttip, accessor, config); - NBTTagCompound tag = accessor.getNBTData(); - - currenttip.add( - StatCollector.translateToLocal("GTPP.machines.tier") + ": " - + EnumChatFormatting.YELLOW - + tag.getInteger("tierMachine") - + EnumChatFormatting.RESET); - currenttip.add( - StatCollector.translateToLocal("GT5U.multiblock.curparallelism") + ": " - + EnumChatFormatting.BLUE - + tag.getInteger("parallel") - + EnumChatFormatting.RESET); + protected GT_RenderedTexture getFrontOverlay() { + return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_CENTRIFUGE); } @Override - public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, - int z) { - super.getWailaNBTData(player, tile, tag, world, x, y, z); - tag.setInteger("tierMachine", tierMachine); - tag.setInteger("parallel", getMaxParallelRecipes()); + protected GT_RenderedTexture getFrontOverlayActive() { + return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_CENTRIFUGE_ACTIVE); } @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - tierGearBoxCasing = -1; - tierPipeCasing = -1; - tierFireBoxCasing = -1; - tierMachineCasing = -1; - tCountCasing = 0; - if (!checkPiece(STRUCTUR_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet)) return false; - if (tierGearBoxCasing < 0 && tierPipeCasing < 0 && tierFireBoxCasing < 0 && tierMachineCasing < 0) return false; - if (tierGearBoxCasing == 1 && tierPipeCasing == 1 - && tierFireBoxCasing == 1 - && tierMachineCasing == 1 - && tCountCasing > 60) { - updateHatchTexture(); - tierMachine = 1; - return true; - } - if (tierGearBoxCasing == 2 && tierPipeCasing == 2 - && tierFireBoxCasing == 2 - && tierMachineCasing == 2 - && tCountCasing > 60) { - updateHatchTexture(); - tierMachine = 2; - return true; + public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, + final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { + if (side == facing) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), + aActive ? getFrontOverlayActive() : getFrontOverlay() }; } - return false; - } - - @Override - public void onValueUpdate(byte aValue) { - tierMachineCasing = aValue; - } - - @Override - public byte getUpdateData() { - return (byte) tierMachineCasing; + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; } @Override @@ -259,7 +211,7 @@ public class GregtechMetaTileEntity_SteamCentrifuge .dot(1) .build(), buildHatchAdder(GregtechMetaTileEntity_SteamCentrifuge.class) - .atLeast(SteamHatchElement.InputBus_Steam, SteamHatchElement.OutputBus_Steam) + .atLeast(SteamHatchElement.InputBus_Steam, SteamHatchElement.OutputBus_Steam, OutputHatch) .casingIndex(10) .dot(1) .buildAndChain(), @@ -277,7 +229,7 @@ public class GregtechMetaTileEntity_SteamCentrifuge @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - this.buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, horizontalOffSet, verticalOffSet, depthOffSet); + this.buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); } @Override @@ -286,9 +238,9 @@ public class GregtechMetaTileEntity_SteamCentrifuge return this.survivialBuildPiece( STRUCTUR_PIECE_MAIN, stackSize, - horizontalOffSet, - verticalOffSet, - depthOffSet, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET, elementBudget, env, false, @@ -296,29 +248,39 @@ public class GregtechMetaTileEntity_SteamCentrifuge } @Override - protected GT_RenderedTexture getFrontOverlay() { - return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_CENTRIFUGE); - } - - @Override - protected GT_RenderedTexture getFrontOverlayActive() { - return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_CENTRIFUGE_ACTIVE); - } - - @Override - public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, - final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { - if (side == facing) { - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), - aActive ? getFrontOverlayActive() : getFrontOverlay() }; + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + tierGearBoxCasing = -1; + tierPipeCasing = -1; + tierFireBoxCasing = -1; + tierMachineCasing = -1; + tCountCasing = 0; + if (!checkPiece(STRUCTUR_PIECE_MAIN, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) return false; + if (tierGearBoxCasing < 0 && tierPipeCasing < 0 && tierFireBoxCasing < 0 && tierMachineCasing < 0) return false; + if (tierGearBoxCasing == 1 && tierPipeCasing == 1 + && tierFireBoxCasing == 1 + && tierMachineCasing == 1 + && tCountCasing > 60 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty() + && !mOutputHatches.isEmpty()) { + updateHatchTexture(); + tierMachine = 1; + return true; } - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; - } - - private int getCasingTextureID() { - if (tierGearBoxCasing == 2 || tierPipeCasing == 2 || tierFireBoxCasing == 2 || tierMachineCasing == 2) - return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); - return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); + if (tierGearBoxCasing == 2 && tierPipeCasing == 2 + && tierFireBoxCasing == 2 + && tierMachineCasing == 2 + && tCountCasing > 60 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty() + && !mOutputHatches.isEmpty()) { + updateHatchTexture(); + tierMachine = 2; + return true; + } + return false; } @Override @@ -357,15 +319,83 @@ public class GregtechMetaTileEntity_SteamCentrifuge .addInfo("Centrifuges up to 8 x Tier things at a time.") .addSeparator() .beginStructureBlock(5, 5, 5, false) - .addCasingInfoMin(tMachineCasing, 60, false) - .addCasingInfo(tFireBoxCasing, 3) - .addCasingInfo(tGearBoxCasing, 8) - .addCasingInfo(tPipeCasing, 4) - .addOtherStructurePart(TT_steaminputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamoutputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamhatch, "Any casing", 1) - .toolTipFinisher(getNickname()); + .addInputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addOutputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addOutputHatch(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addStructureInfo( + EnumChatFormatting.WHITE + "Steam Input Hatch " + + EnumChatFormatting.GOLD + + "1" + + EnumChatFormatting.GRAY + + " Any casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 1) + .addStructureInfo(EnumChatFormatting.GOLD + "60-65x" + EnumChatFormatting.GRAY + " Bronze Plated Bricks") + .addStructureInfo(EnumChatFormatting.GOLD + "8x" + EnumChatFormatting.GRAY + " Bronze Gear Box Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "3x" + EnumChatFormatting.GRAY + " Bronze Firebox Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "4x" + EnumChatFormatting.GRAY + " Bronze Pipe Casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 2) + .addStructureInfo( + EnumChatFormatting.GOLD + "60-65x" + EnumChatFormatting.GRAY + " Solid Steel Machine Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "8x" + EnumChatFormatting.GRAY + " Steel Gear Box Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "3x" + EnumChatFormatting.GRAY + " Steel Firebox Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "4x" + EnumChatFormatting.GRAY + " Steel Pipe Casing") + .addStructureInfo("") + .toolTipFinisher(AuthorEvgenWarGold); return tt; } + @Override + public String[] getInfoData() { + ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); + info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); + info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); + return info.toArray(new String[0]); + } + + @Override + public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + super.getWailaBody(itemStack, currenttip, accessor, config); + NBTTagCompound tag = accessor.getNBTData(); + + currenttip.add( + StatCollector.translateToLocal("GTPP.machines.tier") + ": " + + EnumChatFormatting.YELLOW + + tag.getInteger("tierMachine") + + EnumChatFormatting.RESET); + currenttip.add( + StatCollector.translateToLocal("GT5U.multiblock.curparallelism") + ": " + + EnumChatFormatting.BLUE + + tag.getInteger("parallel") + + EnumChatFormatting.RESET); + } + + @Override + public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, + int z) { + super.getWailaNBTData(player, tile, tag, world, x, y, z); + tag.setInteger("tierMachine", tierMachine); + tag.setInteger("parallel", getMaxParallelRecipes()); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("tierMachine", tierMachine); + } + + @Override + public void loadNBTData(final NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + tierMachine = aNBT.getInteger("tierMachine"); + } + + @SideOnly(Side.CLIENT) + @Override + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.GT_MACHINES_STEAM_CENTRIFUGE_LOOP.resourceLocation; + } + } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCompressor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCompressor.java index 544df5821e..cd09c9597e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCompressor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamCompressor.java @@ -19,6 +19,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -32,7 +33,10 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -55,11 +59,41 @@ import mcp.mobius.waila.api.IWailaDataAccessor; public class GregtechMetaTileEntity_SteamCompressor extends GregtechMeta_SteamMultiBase<GregtechMetaTileEntity_SteamCompressor> implements ISurvivalConstructable { - private String mCasingName = "Bronze or Steel Plated Bricks"; + public GregtechMetaTileEntity_SteamCompressor(String aName) { + super(aName); + } + + public GregtechMetaTileEntity_SteamCompressor(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { + return new GregtechMetaTileEntity_SteamCompressor(this.mName); + } + + @Override + public String getMachineType() { + return "Compressor"; + } + + private static final String STRUCTUR_PIECE_MAIN = "main"; - private int mCountCasing = 0; private IStructureDefinition<GregtechMetaTileEntity_SteamCompressor> STRUCTURE_DEFINITION = null; + // spotless:off + private final String[][] shape = new String[][] { + { "CCC", "CCC", "CCC", "CCC" }, + { "C~C", "C-C", "C-C", "CCC" }, + { "CCC", "CCC", "CCC", "CCC" } }; + //spotless:on + + private static final int HORIZONTAL_OFF_SET = 1; + private static final int VERTICAL_OFF_SET = 1; + private static final int DEPTH_OFF_SET = 0; + + private int mCountCasing = 0; + private int tierMachine = 1; private int tierMachineCasing = -1; @@ -76,17 +110,25 @@ public class GregtechMetaTileEntity_SteamCompressor return 0; } - public GregtechMetaTileEntity_SteamCompressor(String aName) { - super(aName); + protected void updateHatchTexture() { + for (GT_MetaTileEntity_Hatch h : mSteamInputs) h.updateTexture(getCasingTextureID()); + for (GT_MetaTileEntity_Hatch h : mSteamOutputs) h.updateTexture(getCasingTextureID()); + for (GT_MetaTileEntity_Hatch h : mSteamInputFluids) h.updateTexture(getCasingTextureID()); } - public GregtechMetaTileEntity_SteamCompressor(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional); + private int getCasingTextureID() { + if (tierMachineCasing == 2) return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); + return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); } @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { - return new GregtechMetaTileEntity_SteamCompressor(this.mName); + public void onValueUpdate(byte aValue) { + tierMachineCasing = aValue; + } + + @Override + public byte getUpdateData() { + return (byte) tierMachineCasing; } @Override @@ -100,38 +142,20 @@ public class GregtechMetaTileEntity_SteamCompressor } @Override - public String getMachineType() { - return "Compressor"; - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType(getMachineType()) - .addInfo("Controller Block for the Steam Compressor") - .addInfo("33.3% faster than using a single block Steam Compressor.") - .addInfo("Uses only 66.6% of the steam/s compared to a single block Steam Compressor.") - .addInfo("Compresses up to 8 x Tier things at a time.") - .addSeparator() - .beginStructureBlock(3, 3, 4, true) - .addController("Front center") - .addCasingInfoMin(mCasingName, 25, false) - .addOtherStructurePart(TT_steaminputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamoutputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamhatch, "Any casing", 1) - .toolTipFinisher(CORE.GT_Tooltip_Builder.get()); - return tt; + public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, + final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { + if (side == facing) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), + aActive ? getFrontOverlayActive() : getFrontOverlay() }; + } + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; } @Override public IStructureDefinition<GregtechMetaTileEntity_SteamCompressor> getStructureDefinition() { if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_SteamCompressor>builder() - .addShape( - mName, - transpose( - new String[][] { { "CCC", "CCC", "CCC", "CCC" }, { "C~C", "C-C", "C-C", "CCC" }, - { "CCC", "CCC", "CCC", "CCC" }, })) + .addShape(STRUCTUR_PIECE_MAIN, transpose(shape)) .addElement( 'C', ofChain( @@ -156,26 +180,41 @@ public class GregtechMetaTileEntity_SteamCompressor @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece(mName, stackSize, hintsOnly, 1, 1, 0); + buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); } @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - return survivialBuildPiece(mName, stackSize, 1, 1, 0, elementBudget, env, false, true); + return survivialBuildPiece( + STRUCTUR_PIECE_MAIN, + stackSize, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET, + elementBudget, + env, + false, + true); } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mCountCasing = 0; tierMachineCasing = -1; - if (!checkPiece(mName, 1, 1, 0)) return false; + if (!checkPiece(STRUCTUR_PIECE_MAIN, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) return false; if (tierMachineCasing < 0) return false; - if (tierMachineCasing == 1 && mCountCasing > 25) { + if (tierMachineCasing == 1 && mCountCasing > 25 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty()) { updateHatchTexture(); tierMachine = 1; return true; } - if (tierMachineCasing == 2 && mCountCasing > 25) { + if (tierMachineCasing == 2 && mCountCasing > 25 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty()) { updateHatchTexture(); tierMachine = 2; return true; @@ -185,27 +224,6 @@ public class GregtechMetaTileEntity_SteamCompressor } @Override - public void onValueUpdate(byte aValue) { - tierMachineCasing = aValue; - } - - @Override - public byte getUpdateData() { - return (byte) tierMachineCasing; - } - - protected void updateHatchTexture() { - for (GT_MetaTileEntity_Hatch h : mSteamInputs) h.updateTexture(getCasingTextureID()); - for (GT_MetaTileEntity_Hatch h : mSteamOutputs) h.updateTexture(getCasingTextureID()); - for (GT_MetaTileEntity_Hatch h : mSteamInputFluids) h.updateTexture(getCasingTextureID()); - } - - private int getCasingTextureID() { - if (tierMachineCasing == 2) return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); - return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); - } - - @Override public int getMaxParallelRecipes() { return tierMachine == 1 ? 8 : 16; } @@ -231,13 +249,41 @@ public class GregtechMetaTileEntity_SteamCompressor } @Override - public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, - final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { - if (side == facing) { - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), - aActive ? getFrontOverlayActive() : getFrontOverlay() }; - } - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; + protected GT_Multiblock_Tooltip_Builder createTooltip() { + GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType(getMachineType()) + .addInfo("Controller Block for the Steam Compressor") + .addInfo("33.3% faster than using a single block Steam Compressor.") + .addInfo("Uses only 66.6% of the steam/s compared to a single block Steam Compressor.") + .addInfo("Compresses up to 8 x Tier things at a time.") + .addSeparator() + .beginStructureBlock(3, 3, 4, false) + .addInputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addOutputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addStructureInfo( + EnumChatFormatting.WHITE + "Steam Input Hatch " + + EnumChatFormatting.GOLD + + "1" + + EnumChatFormatting.GRAY + + " Any casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 1) + .addStructureInfo(EnumChatFormatting.GOLD + "25-30x" + EnumChatFormatting.GRAY + " Bronze Plated Bricks") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 2) + .addStructureInfo( + EnumChatFormatting.GOLD + "25-30x" + EnumChatFormatting.GRAY + " Solid Steel Machine Casing") + .addStructureInfo("") + .toolTipFinisher(CORE.GT_Tooltip_Builder.get()); + return tt; + } + + @Override + public String[] getInfoData() { + ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); + info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); + info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); + return info.toArray(new String[0]); } @Override @@ -278,11 +324,10 @@ public class GregtechMetaTileEntity_SteamCompressor tierMachine = aNBT.getInteger("tierMachine"); } + @SideOnly(Side.CLIENT) @Override - public String[] getInfoData() { - ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); - info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); - info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); - return info.toArray(new String[0]); + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.IC2_MACHINES_COMPRESSOR_OP.resourceLocation; } + } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamMacerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamMacerator.java index b03c7b2a7a..02f24898a0 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamMacerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamMacerator.java @@ -19,6 +19,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -32,8 +33,10 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; -import gregtech.api.enums.ItemList; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -56,15 +59,6 @@ import mcp.mobius.waila.api.IWailaDataAccessor; public class GregtechMetaTileEntity_SteamMacerator extends GregtechMeta_SteamMultiBase<GregtechMetaTileEntity_SteamMacerator> implements ISurvivalConstructable { - private String mCasingName = "Bronze or Steel Plated Bricks"; - - private int mCounCasing = 0; - private IStructureDefinition<GregtechMetaTileEntity_SteamMacerator> STRUCTURE_DEFINITION = null; - - private int tierMachine = 0; - - private int tierMachineCasing = -1; - public GregtechMetaTileEntity_SteamMacerator(String aName) { super(aName); } @@ -78,6 +72,29 @@ public class GregtechMetaTileEntity_SteamMacerator return new GregtechMetaTileEntity_SteamMacerator(this.mName); } + @Override + public String getMachineType() { + return "Macerator"; + } + + private static final String STRUCTUR_PIECE_MAIN = "main"; + + private IStructureDefinition<GregtechMetaTileEntity_SteamMacerator> STRUCTURE_DEFINITION = null; + + private final String[][] shape = new String[][] { { "CCC", "CCC", "CCC" }, { "C~C", "C-C", "CCC" }, + { "CCC", "CCC", "CCC" } }; + // spotless:on + + private static final int HORIZONTAL_OFF_SET = 1; + private static final int VERTICAL_OFF_SET = 1; + private static final int DEPTH_OFF_SET = 0; + + private int mCounCasing = 0; + + private int tierMachine = 0; + + private int tierMachineCasing = -1; + public int getTierMachineCasing(Block block, int meta) { if (block == sBlockCasings1 && 10 == meta) { mCounCasing++; @@ -90,6 +107,27 @@ public class GregtechMetaTileEntity_SteamMacerator return 0; } + protected void updateHatchTexture() { + for (GT_MetaTileEntity_Hatch h : mSteamInputs) h.updateTexture(getCasingTextureID()); + for (GT_MetaTileEntity_Hatch h : mSteamOutputs) h.updateTexture(getCasingTextureID()); + for (GT_MetaTileEntity_Hatch h : mSteamInputFluids) h.updateTexture(getCasingTextureID()); + } + + private int getCasingTextureID() { + if (tierMachineCasing == 2) return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); + return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); + } + + @Override + public void onValueUpdate(byte aValue) { + tierMachineCasing = aValue; + } + + @Override + public byte getUpdateData() { + return (byte) tierMachineCasing; + } + @Override protected GT_RenderedTexture getFrontOverlay() { return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR); @@ -101,41 +139,20 @@ public class GregtechMetaTileEntity_SteamMacerator } @Override - public String getMachineType() { - return "Macerator"; - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - if (mCasingName.contains("gt.blockcasings")) { - mCasingName = ItemList.Casing_BronzePlatedBricks.get(1) - .getDisplayName(); + public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, + final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { + if (side == facing) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), + aActive ? getFrontOverlayActive() : getFrontOverlay() }; } - GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType(getMachineType()) - .addInfo("Controller Block for the Steam Macerator") - .addInfo("33.3% faster than using a single block Steam Macerator.") - .addInfo("Uses only 66.6% of the steam/s required compared to a single block Steam Macerator on Tier 1.") - .addInfo("Macerates up to 8 x Tier things at a time.") - .addSeparator() - .beginStructureBlock(3, 3, 3, true) - .addController("Front center") - .addCasingInfoMin(mCasingName, 14, false) - .addOtherStructurePart(TT_steaminputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamoutputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamhatch, "Any casing", 1) - .toolTipFinisher(CORE.GT_Tooltip_Builder.get()); - return tt; + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; } @Override public IStructureDefinition<GregtechMetaTileEntity_SteamMacerator> getStructureDefinition() { if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_SteamMacerator>builder() - .addShape( - mName, - transpose( - new String[][] { { "CCC", "CCC", "CCC" }, { "C~C", "C-C", "CCC" }, { "CCC", "CCC", "CCC" }, })) + .addShape(STRUCTUR_PIECE_MAIN, transpose(shape)) .addElement( 'C', ofChain( @@ -160,26 +177,41 @@ public class GregtechMetaTileEntity_SteamMacerator @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece(mName, stackSize, hintsOnly, 1, 1, 0); + buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); } @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - return survivialBuildPiece(mName, stackSize, 1, 1, 0, elementBudget, env, false, true); + return survivialBuildPiece( + STRUCTUR_PIECE_MAIN, + stackSize, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET, + elementBudget, + env, + false, + true); } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { tierMachineCasing = -1; mCounCasing = 0; - if (!checkPiece(mName, 1, 1, 0)) return false; + if (!checkPiece(STRUCTUR_PIECE_MAIN, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) return false; if (tierMachineCasing < 0) return false; - if (tierMachineCasing == 1 && mCounCasing > 14) { + if (tierMachineCasing == 1 && mCounCasing > 14 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty()) { updateHatchTexture(); tierMachine = 1; return true; } - if (tierMachineCasing == 2 && mCounCasing > 14) { + if (tierMachineCasing == 2 && mCounCasing > 14 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty()) { updateHatchTexture(); tierMachine = 2; return true; @@ -189,27 +221,6 @@ public class GregtechMetaTileEntity_SteamMacerator } @Override - public void onValueUpdate(byte aValue) { - tierMachineCasing = aValue; - } - - @Override - public byte getUpdateData() { - return (byte) tierMachineCasing; - } - - protected void updateHatchTexture() { - for (GT_MetaTileEntity_Hatch h : mSteamInputs) h.updateTexture(getCasingTextureID()); - for (GT_MetaTileEntity_Hatch h : mSteamOutputs) h.updateTexture(getCasingTextureID()); - for (GT_MetaTileEntity_Hatch h : mSteamInputFluids) h.updateTexture(getCasingTextureID()); - } - - private int getCasingTextureID() { - if (tierMachineCasing == 2) return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); - return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); - } - - @Override public int getMaxParallelRecipes() { return tierMachine == 1 ? 8 : 16; } @@ -240,13 +251,41 @@ public class GregtechMetaTileEntity_SteamMacerator } @Override - public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, - final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { - if (side == facing) { - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), - aActive ? getFrontOverlayActive() : getFrontOverlay() }; - } - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; + protected GT_Multiblock_Tooltip_Builder createTooltip() { + GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType(getMachineType()) + .addInfo("Controller Block for the Steam Macerator") + .addInfo("33.3% faster than using a single block Steam Macerator.") + .addInfo("Uses only 66.6% of the steam/s required compared to a single block Steam Macerator on Tier 1.") + .addInfo("Macerates up to 8 x Tier things at a time.") + .addSeparator() + .beginStructureBlock(3, 3, 3, false) + .addInputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addOutputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addStructureInfo( + EnumChatFormatting.WHITE + "Steam Input Hatch " + + EnumChatFormatting.GOLD + + "1" + + EnumChatFormatting.GRAY + + " Any casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 1) + .addStructureInfo(EnumChatFormatting.GOLD + "14-22x" + EnumChatFormatting.GRAY + " Bronze Plated Bricks") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 2) + .addStructureInfo( + EnumChatFormatting.GOLD + "14-22x" + EnumChatFormatting.GRAY + " Solid Steel Machine Casing") + .addStructureInfo("") + .toolTipFinisher(CORE.GT_Tooltip_Builder.get()); + return tt; + } + + @Override + public String[] getInfoData() { + ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); + info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); + info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); + return info.toArray(new String[0]); } @Override @@ -287,11 +326,10 @@ public class GregtechMetaTileEntity_SteamMacerator tierMachine = aNBT.getInteger("tierMachine"); } + @SideOnly(Side.CLIENT) @Override - public String[] getInfoData() { - ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); - info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); - info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); - return info.toArray(new String[0]); + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.IC2_MACHINES_MACERATOR_OP.resourceLocation; } + } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java index 233847c14c..3012016d23 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java @@ -3,6 +3,7 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.s import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.GregTech_API.*; import static gregtech.api.enums.GT_HatchElement.InputHatch; +import static gregtech.api.enums.GT_Values.AuthorEvgenWarGold; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import java.util.ArrayList; @@ -18,6 +19,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -32,8 +34,12 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -48,6 +54,7 @@ import gregtech.api.util.GT_OverclockCalculator; import gregtech.api.util.GT_Recipe; import gregtech.common.blocks.GT_Block_Casings1; import gregtech.common.blocks.GT_Block_Casings2; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_SteamMultiBase; import ic2.core.init.BlocksItems; import ic2.core.init.InternalName; @@ -87,9 +94,12 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB { " ADDDA", "A~A DEEED", "AAA DECED", "AAA DEEED", " ADDDA" }, { " AAAAA", "AAA ABBBA", "AAA ABABA", "AAA ABBBA", " AAAAA" } }; - private static final int horizontalOffSet = 1; - private static final int verticalOffSet = 4; - private static final int depthOffSet = 1; + private static final int HORIZONTAL_OFF_SET = 1; + private static final int VERTICAL_OFF_SET = 4; + private static final int DEPTH_OFF_SET = 1; + + private static final int MACHINEMODE_OREWASH = 0; + private static final int MACHINEMODE_SIMPLEWASH = 1; private int tierGearBoxCasing = -1; private int tierPipeCasing = -1; @@ -98,10 +108,6 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB private int tCountCasing = 0; - private String tGlasses = "Any Glass"; - - private String tMachineCasing = "Solid Bronze or Steel Machine Casing"; - public int getTierMachineCasing(Block block, int meta) { if (block == sBlockCasings1 && 10 == meta) { tCountCasing++; @@ -114,16 +120,12 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB return 0; } - private String tGearBoxCasing = "Bronze or Steel Gear Box Casing"; - public static int getTierGearBoxCasing(Block block, int meta) { if (block == sBlockCasings2 && 2 == meta) return 1; if (block == sBlockCasings2 && 3 == meta) return 2; return 0; } - private String tPipeCasing = "Bronze or Steel Pipe Casing"; - public static int getTierPipeCasing(Block block, int meta) { if (block == sBlockCasings2 && 12 == meta) return 1; if (block == sBlockCasings2 && 13 == meta) return 2; @@ -137,84 +139,40 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB for (GT_MetaTileEntity_Hatch h : mInputHatches) h.updateTexture(getCasingTextureID()); } - protected static String getNickname() { - return "EvgenWarGold"; + private int getCasingTextureID() { + if (tierGearBoxCasing == 2 || tierPipeCasing == 2 || tierMachineCasing == 2) + return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); + return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); } @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setInteger("tierMachine", tierMachine); + public void onValueUpdate(byte aValue) { + tierMachineCasing = aValue; } @Override - public void loadNBTData(final NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - tierMachine = aNBT.getInteger("tierMachine"); + public byte getUpdateData() { + return (byte) tierMachineCasing; } @Override - public String[] getInfoData() { - ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); - info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); - info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); - return info.toArray(new String[0]); + protected GT_RenderedTexture getFrontOverlay() { + return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_WASHER); } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, - IWailaConfigHandler config) { - super.getWailaBody(itemStack, currenttip, accessor, config); - NBTTagCompound tag = accessor.getNBTData(); - - currenttip.add( - StatCollector.translateToLocal("GTPP.machines.tier") + ": " - + EnumChatFormatting.YELLOW - + tag.getInteger("tierMachine") - + EnumChatFormatting.RESET); - currenttip.add( - StatCollector.translateToLocal("GT5U.multiblock.curparallelism") + ": " - + EnumChatFormatting.BLUE - + tag.getInteger("parallel") - + EnumChatFormatting.RESET); + protected GT_RenderedTexture getFrontOverlayActive() { + return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_WASHER_ACTIVE); } @Override - public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, - int z) { - super.getWailaNBTData(player, tile, tag, world, x, y, z); - tag.setInteger("tierMachine", tierMachine); - tag.setInteger("parallel", getMaxParallelRecipes()); - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - tierGearBoxCasing = -1; - tierPipeCasing = -1; - tierMachineCasing = -1; - tCountCasing = 0; - if (!checkPiece(STRUCTUR_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet)) return false; - if (tierGearBoxCasing < 0 && tierPipeCasing < 0 && tierMachineCasing < 0) return false; - if (tierGearBoxCasing == 1 && tierPipeCasing == 1 && tierMachineCasing == 1 && tCountCasing > 55) { - updateHatchTexture(); - tierMachine = 1; - return true; - } - if (tierGearBoxCasing == 2 && tierPipeCasing == 2 && tierMachineCasing == 2 && tCountCasing > 55) { - updateHatchTexture(); - tierMachine = 2; - return true; + public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, + final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { + if (side == facing) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), + aActive ? getFrontOverlayActive() : getFrontOverlay() }; } - return false; - } - - @Override - public void onValueUpdate(byte aValue) { - tierMachineCasing = aValue; - } - - @Override - public byte getUpdateData() { - return (byte) tierMachineCasing; + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; } @Override @@ -275,7 +233,7 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - this.buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, horizontalOffSet, verticalOffSet, depthOffSet); + this.buildPiece(STRUCTUR_PIECE_MAIN, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); } @Override @@ -284,39 +242,45 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB return this.survivialBuildPiece( STRUCTUR_PIECE_MAIN, stackSize, - horizontalOffSet, - verticalOffSet, - depthOffSet, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET, elementBudget, env, false, true); } - @Override - protected GT_RenderedTexture getFrontOverlay() { - return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_WASHER); - } - - @Override - protected GT_RenderedTexture getFrontOverlayActive() { - return new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_WASHER_ACTIVE); - } - - @Override - public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side, - final ForgeDirection facing, final int aColorIndex, final boolean aActive, final boolean aRedstone) { - if (side == facing) { - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()), - aActive ? getFrontOverlayActive() : getFrontOverlay() }; + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + tierGearBoxCasing = -1; + tierPipeCasing = -1; + tierMachineCasing = -1; + tCountCasing = 0; + if (!checkPiece(STRUCTUR_PIECE_MAIN, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) return false; + if (tierGearBoxCasing < 0 && tierPipeCasing < 0 && tierMachineCasing < 0) return false; + if (tierGearBoxCasing == 1 && tierPipeCasing == 1 + && tierMachineCasing == 1 + && tCountCasing > 55 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty() + && !mInputHatches.isEmpty()) { + updateHatchTexture(); + tierMachine = 1; + return true; } - return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(getCasingTextureID()) }; - } - - private int getCasingTextureID() { - if (tierGearBoxCasing == 2 || tierPipeCasing == 2 || tierMachineCasing == 2) - return ((GT_Block_Casings2) GregTech_API.sBlockCasings2).getTextureIndex(0); - return ((GT_Block_Casings1) GregTech_API.sBlockCasings1).getTextureIndex(10); + if (tierGearBoxCasing == 2 && tierPipeCasing == 2 + && tierMachineCasing == 2 + && tCountCasing > 55 + && !mSteamInputFluids.isEmpty() + && !mSteamInputs.isEmpty() + && !mSteamOutputs.isEmpty() + && !mInputHatches.isEmpty()) { + updateHatchTexture(); + tierMachine = 2; + return true; + } + return false; } @Override @@ -326,6 +290,9 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB @Override public RecipeMap<?> getRecipeMap() { + if (machineMode == MACHINEMODE_SIMPLEWASH) { + return GTPPRecipeMaps.simpleWasherRecipes; + } return RecipeMaps.oreWasherRecipes; } @@ -354,22 +321,115 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB "On Tier 1, it uses only 66.6% of the steam/s required compared to what a single block steam machine would use.") .addInfo("Washes up to 8 x Tier things at a time.") .addSeparator() - .beginStructureBlock(5, 5, 9, false) - .addCasingInfoMin(tMachineCasing, 55, false) - .addCasingInfo(tPipeCasing, 12) - .addCasingInfo(tGearBoxCasing, 8) - .addCasingInfo(tGlasses, 24) - .addOtherStructurePart(TT_steaminputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamoutputbus, "Any casing", 1) - .addOtherStructurePart(TT_steamhatch, "Any casing", 1) - .addInputHatch("Any casing", 1) - .toolTipFinisher(getNickname()); + .beginStructureBlock(5, 5, 5, false) + .addInputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addInputHatch(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addOutputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + " Any casing", 1) + .addStructureInfo( + EnumChatFormatting.WHITE + "Steam Input Hatch " + + EnumChatFormatting.GOLD + + "1" + + EnumChatFormatting.GRAY + + " Any casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 1) + .addStructureInfo(EnumChatFormatting.GOLD + "55-59x" + EnumChatFormatting.GRAY + " Bronze Plated Bricks") + .addStructureInfo(EnumChatFormatting.GOLD + "24x" + EnumChatFormatting.GRAY + " Any Glass") + .addStructureInfo(EnumChatFormatting.GOLD + "12x" + EnumChatFormatting.GRAY + " Bronze Pipe Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "8x" + EnumChatFormatting.GRAY + " Bronze Gear Box Casing") + .addStructureInfo("") + .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 2) + .addStructureInfo( + EnumChatFormatting.GOLD + "55-59x" + EnumChatFormatting.GRAY + " Solid Steel Machine Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "24x" + EnumChatFormatting.GRAY + " Any Glass") + .addStructureInfo(EnumChatFormatting.GOLD + "12x" + EnumChatFormatting.GRAY + " Steel Pipe Casing") + .addStructureInfo(EnumChatFormatting.GOLD + "8x" + EnumChatFormatting.GRAY + " Steel Gear Box Casing") + .addStructureInfo("") + .toolTipFinisher(AuthorEvgenWarGold); return tt; } @Override + public String[] getInfoData() { + ArrayList<String> info = new ArrayList<>(Arrays.asList(super.getInfoData())); + info.add("Machine Tier: " + EnumChatFormatting.YELLOW + tierMachine); + info.add("Parallel: " + EnumChatFormatting.YELLOW + getMaxParallelRecipes()); + return info.toArray(new String[0]); + } + + @Override + public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + IWailaConfigHandler config) { + super.getWailaBody(itemStack, currenttip, accessor, config); + NBTTagCompound tag = accessor.getNBTData(); + + currenttip.add( + StatCollector.translateToLocal("GTPP.machines.tier") + ": " + + EnumChatFormatting.YELLOW + + tag.getInteger("tierMachine") + + EnumChatFormatting.RESET); + currenttip.add( + StatCollector.translateToLocal("GT5U.multiblock.curparallelism") + ": " + + EnumChatFormatting.BLUE + + tag.getInteger("parallel") + + EnumChatFormatting.RESET); + currenttip.add( + StatCollector.translateToLocal("GT5U.machines.oreprocessor1") + " " + + EnumChatFormatting.WHITE + + StatCollector.translateToLocal("GT5U.GTPP_MULTI_WASH_PLANT.mode." + tag.getInteger("mode")) + + EnumChatFormatting.RESET); + } + + @Override + public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, + int z) { + super.getWailaNBTData(player, tile, tag, world, x, y, z); + tag.setInteger("tierMachine", tierMachine); + tag.setInteger("parallel", getMaxParallelRecipes()); + tag.setInteger("mode", machineMode); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("tierMachine", tierMachine); + aNBT.setInteger("mMode", machineMode); + } + + @Override + public void loadNBTData(final NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + tierMachine = aNBT.getInteger("tierMachine"); + machineMode = aNBT.getInteger("mMode"); + } + + @Override protected IAlignmentLimits getInitialAlignmentLimits() { // don't rotate a washer, water will flow out. return (d, r, f) -> d.offsetY == 0 && r.isNotRotated(); } + + @SideOnly(Side.CLIENT) + @Override + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.GT_MACHINES_STEAM_WASHER_LOOP.resourceLocation; + } + + @Override + public boolean supportsMachineModeSwitch() { + return true; + } + + @Override + public int nextMachineMode() { + if (machineMode == MACHINEMODE_OREWASH) return MACHINEMODE_SIMPLEWASH; + else return MACHINEMODE_OREWASH; + } + + @Override + public void setMachineModeIcons() { + machineModeIcons.clear(); + machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_WASHPLANT); + machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_SIMPLEWASHER); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWaterPump.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWaterPump.java index a32c0ea4cf..1cfc75c1ca 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWaterPump.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWaterPump.java @@ -16,6 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -31,8 +32,11 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -261,12 +265,15 @@ public class GregtechMetaTileEntity_SteamWaterPump + "1" + EnumChatFormatting.GRAY + " Any casing") + .addStructureInfo("") .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 1) .addStructureInfo(EnumChatFormatting.GOLD + "10" + EnumChatFormatting.GRAY + " Bronze Frame Box") .addStructureInfo(EnumChatFormatting.GOLD + "10" + EnumChatFormatting.GRAY + " Wooden Casing") + .addStructureInfo("") .addStructureInfo(EnumChatFormatting.BLUE + "Tier " + EnumChatFormatting.DARK_PURPLE + 2) .addStructureInfo(EnumChatFormatting.GOLD + "10" + EnumChatFormatting.GRAY + " Steel Frame Box") .addStructureInfo(EnumChatFormatting.GOLD + "10 " + EnumChatFormatting.GRAY + " Wooden Casing") + .addStructureInfo("") .toolTipFinisher(AuthorEvgenWarGold); return tt; } @@ -353,4 +360,10 @@ public class GregtechMetaTileEntity_SteamWaterPump return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && !f.isVerticallyFliped(); } + @SideOnly(Side.CLIENT) + @Override + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.GT_MACHINES_WATER_PUMP_LOOP.resourceLocation; + } + } diff --git a/src/main/resources/assets/gregtech/sounds.json b/src/main/resources/assets/gregtech/sounds.json index 95d534b7cd..06245db1a1 100644 --- a/src/main/resources/assets/gregtech/sounds.json +++ b/src/main/resources/assets/gregtech/sounds.json @@ -26,6 +26,33 @@ } ] }, + "machines.SteamCentrifugeLoop": { + "category": "block", + "sounds": [ + { + "name": "SteamCentrifugeLoop", + "stream": false + } + ] + }, + "machines.SteamWasherLoop": { + "category": "block", + "sounds": [ + { + "name": "SteamWasherLoop", + "stream": false + } + ] + }, + "machines.WaterPumpLoop": { + "category": "block", + "sounds": [ + { + "name": "WaterPumpLoop", + "stream": false + } + ] + }, "machines.DistilleryLoop": { "category": "block", "sounds": [ diff --git a/src/main/resources/assets/gregtech/sounds/SteamCentrifugeLoop.ogg b/src/main/resources/assets/gregtech/sounds/SteamCentrifugeLoop.ogg Binary files differnew file mode 100644 index 0000000000..c1f3495252 --- /dev/null +++ b/src/main/resources/assets/gregtech/sounds/SteamCentrifugeLoop.ogg diff --git a/src/main/resources/assets/gregtech/sounds/SteamWasherLoop.ogg b/src/main/resources/assets/gregtech/sounds/SteamWasherLoop.ogg Binary files differnew file mode 100644 index 0000000000..fc710a1849 --- /dev/null +++ b/src/main/resources/assets/gregtech/sounds/SteamWasherLoop.ogg diff --git a/src/main/resources/assets/gregtech/sounds/WaterPumpLoop.ogg b/src/main/resources/assets/gregtech/sounds/WaterPumpLoop.ogg Binary files differnew file mode 100644 index 0000000000..f1a35e9611 --- /dev/null +++ b/src/main/resources/assets/gregtech/sounds/WaterPumpLoop.ogg |