package gregtech.common.covers.redstone; import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; public class CoverAdvancedRedstoneTransmitterInternal extends CoverAdvancedRedstoneTransmitterBase { public CoverAdvancedRedstoneTransmitterInternal(ITexture coverTexture) { super(TransmitterData.class, coverTexture); } @Override public TransmitterData createDataObject() { return new TransmitterData(); } @Override public TransmitterData createDataObject(int aLegacyData) { return createDataObject(); } @Override public TransmitterData doCoverThingsImpl(ForgeDirection side, byte aInputRedstone, int aCoverID, TransmitterData aCoverVariable, ICoverable aTileEntity, long aTimer) { byte outputRedstone = aTileEntity.getOutputRedstoneSignal(side); if (aCoverVariable.isInvert()) { if (outputRedstone > 0) outputRedstone = 0; else outputRedstone = 15; } final long hash = hashCoverCoords(aTileEntity, side); setSignalAt(aCoverVariable.getUuid(), aCoverVariable.getFrequency(), hash, outputRedstone); return aCoverVariable; } @Override public boolean letsRedstoneGoOutImpl(ForgeDirection side, int aCoverID, TransmitterData aCoverVariable, ICoverable aTileEntity) { return true; } @Override protected boolean manipulatesSidedRedstoneOutputImpl(ForgeDirection side, int aCoverID, TransmitterData aCoverVariable, ICoverable aTileEntity) { return true; } }