package gregtech.common.covers; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.covers.IControlsWorkCover; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.ISerializableObject; public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirelessBase { /** * @deprecated use {@link #GT_Cover_RedstoneTransmitterExternal(ITexture coverTexture)} instead */ @Deprecated public GT_Cover_RedstoneTransmitterExternal() { this(null); } public GT_Cover_RedstoneTransmitterExternal(ITexture coverTexture) { super(coverTexture); } @Override public int doCoverThings(ForgeDirection side, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { // TODO remove next line after 2.3.0 if (!IControlsWorkCover.makeSureOnlyOne(side, aTileEntity)) return aCoverVariable; GregTech_API.sWirelessRedstone.put(aCoverVariable, aInputRedstone); return aCoverVariable; } @Override protected boolean isRedstoneSensitiveImpl(ForgeDirection side, int aCoverID, ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { return true; } @Override public boolean letsRedstoneGoIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } @Override public int getTickRate(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 1; } @Override public boolean isCoverPlaceable(ForgeDirection side, ItemStack aStack, ICoverable aTileEntity) { if (!super.isCoverPlaceable(side, aStack, aTileEntity)) return false; for (final ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) { if (aTileEntity.getCoverBehaviorAtSideNew(tSide) instanceof IControlsWorkCover) { return false; } } return true; } }