diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
5 files changed, 134 insertions, 18 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java index ec919feffa..cf6e484ff5 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java @@ -92,49 +92,49 @@ public class TexturesCentrifugeMultiblock { TileEntity tTileEntity; IMetaTileEntity tMetaTileEntity; if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[0].getIcon(); } return this.CENTRIFUGE[0].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[3].getIcon(); } return this.CENTRIFUGE[3].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[6].getIcon(); } return this.CENTRIFUGE[6].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[1].getIcon(); } return this.CENTRIFUGE[1].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[7].getIcon(); } return this.CENTRIFUGE[7].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[8].getIcon(); } return this.CENTRIFUGE[8].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[5].getIcon(); } return this.CENTRIFUGE[5].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[2].getIcon(); } return this.CENTRIFUGE[2].getIcon(); @@ -143,49 +143,49 @@ public class TexturesCentrifugeMultiblock { TileEntity tTileEntity; Object tMetaTileEntity; if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[0].getIcon(); } return this.CENTRIFUGE[0].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[3].getIcon(); } return this.CENTRIFUGE[3].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[6].getIcon(); } return this.CENTRIFUGE[6].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[1].getIcon(); } return this.CENTRIFUGE[1].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[7].getIcon(); } return this.CENTRIFUGE[7].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[8].getIcon(); } return this.CENTRIFUGE[8].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[5].getIcon(); } return this.CENTRIFUGE[5].getIcon(); } if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IndustrialCentrifuge))) { - if (((IGregTechTileEntity) tTileEntity).isActive()) { + if (isUsingAnimatedTexture(tTileEntity)) { return this.CENTRIFUGE_ACTIVE[2].getIcon(); } return this.CENTRIFUGE[2].getIcon(); @@ -439,5 +439,16 @@ public class TexturesCentrifugeMultiblock { } return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); } + + public boolean isUsingAnimatedTexture(TileEntity tTileEntity) { + IGregTechTileEntity aTile; + if (tTileEntity instanceof IGregTechTileEntity) { + aTile = (IGregTechTileEntity) tTileEntity; + if (aTile instanceof GregtechMetaTileEntity_IndustrialCentrifuge) { + return ((GregtechMetaTileEntity_IndustrialCentrifuge) aTile).usingAnimations(); + } + } + return false; + } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java index 46350394ea..3c99a74052 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java @@ -12,14 +12,20 @@ import gregtech.api.util.*; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class GregtechMetaTileEntity_IndustrialCentrifuge extends GregtechMeta_MultiBlockBase { + + private boolean mIsAnimated = true; private static ITexture frontFace; private static ITexture frontFaceActive; private static CustomIcon GT9_5_Active = new CustomIcon("iconsets/LARGECENTRIFUGE_ACTIVE5"); @@ -71,7 +77,7 @@ extends GregtechMeta_MultiBlockBase { @Override public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(0)], aFacing == aSide ? aActive ? frontFaceActive : frontFace : Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(0)]}; + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(0)], aFacing == aSide ? aActive ? getFrontFacingTurbineTexture(aActive) : getFrontFacingTurbineTexture(aActive) : Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(0)]}; } @Override @@ -188,4 +194,41 @@ extends GregtechMeta_MultiBlockBase { return false; } + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); + this.mIsAnimated = Utils.invertBoolean(mIsAnimated); + if (this.mIsAnimated) { + PlayerUtils.messagePlayer(aPlayer, "Using Animated Turbine Texture."); + } + else { + PlayerUtils.messagePlayer(aPlayer, "Using Static Turbine Texture."); + } + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("mIsAnimated", mIsAnimated); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mIsAnimated = aNBT.getBoolean("mIsAnimated"); + } + + public boolean usingAnimations() { + return mIsAnimated; + } + + private ITexture getFrontFacingTurbineTexture(boolean isActive) { + if (usingAnimations()) { + if (isActive) { + return frontFaceActive; + } + } + return frontFace; + } + }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java b/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java new file mode 100644 index 0000000000..89c2952a54 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java @@ -0,0 +1,20 @@ +package gtPlusPlus.xmod.ob; + +import net.minecraft.inventory.IInventory; +import openblocks.common.tileentity.TileEntitySprinkler; +import openmods.api.IInventoryCallback; + +public class CallbackObject implements IInventoryCallback { + + private TileEntitySprinkler mTile; + + CallbackObject(TileEntitySprinkler aTile){ + mTile = aTile; + } + + @Override + public void onInventoryChanged(IInventory inventory, int slotNumber) { + mTile.updateEntity(); + } + +} diff --git a/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java b/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java new file mode 100644 index 0000000000..60c340592b --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java @@ -0,0 +1,35 @@ +package gtPlusPlus.xmod.ob; + +import java.util.HashMap; + +import gtPlusPlus.api.objects.Logger; +import net.minecraft.item.ItemStack; +import openblocks.common.tileentity.TileEntitySprinkler; +import openmods.inventory.TileEntityInventory; + +public class CustomSprinklerInventory extends TileEntityInventory { + private final TileEntitySprinkler owner; + + public CustomSprinklerInventory(TileEntitySprinkler owner, String name, boolean isInvNameLocalized, int size) { + super(owner, name, isInvNameLocalized, size); + this.owner = owner; + this.addCallback(new CallbackObject(this.owner)); + } + + ItemStack[] mFerts; + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemstack) { + Logger.INFO("Inserting: "+itemstack != null ? itemstack.getDisplayName() : "Nothing"); + HashMap<Integer, ItemStack> mFerts = SprinklerHandler.getValidFerts(); + if (itemstack != null && mFerts != null && mFerts.size() > 0) { + for (ItemStack u : mFerts.values()) { + if (itemstack.isItemEqual(u)) { + return true; + } + } + } + return false; + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java b/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java index b6b9428005..85f8ded290 100644 --- a/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java +++ b/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java @@ -4,8 +4,10 @@ import java.util.HashMap; import com.google.common.base.Objects; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; /** @@ -31,12 +33,17 @@ public class SprinklerHandler { public static void registerSprinklerFertilizer(ItemStack aFert) { int aHash = Objects.hashCode(aFert.getItem(), aFert.getItemDamage()); if (!mValidFerts.containsKey(aHash)) { + Logger.INFO("Registering "+aFert.getDisplayName()+" as OB Sprinkler Fertilizer."); mValidFerts.put(aHash, aFert.copy()); } } public static void registerModFerts() { - ItemStack f; + ItemStack f; + + f = new ItemStack(Items.dye, 1, 15); + SprinklerHandler.registerSprinklerFertilizer(f); + if (LoadedMods.Forestry) { f = ItemUtils.getCorrectStacktype("Forestry:fertilizerBio", 1); if (f != null) { |