diff options
| author | NotAPenguin <michiel.vandeginste@gmail.com> | 2024-09-02 23:17:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-02 23:17:17 +0200 |
| commit | 1b820de08a05070909a267e17f033fcf58ac8710 (patch) | |
| tree | 02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java | |
| parent | afd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff) | |
| download | GT5-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/bartworks/common/tileentities/tiered/MTEDiode.java')
| -rw-r--r-- | src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java b/src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java new file mode 100644 index 0000000000..ad3a39320f --- /dev/null +++ b/src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +package bartworks.common.tileentities.tiered; + +import static gregtech.api.enums.MetaTileEntityIDs.Diode12A_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.Diode12A_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.Diode16A_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.Diode16A_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.Diode2A_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.Diode2A_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.Diode4A_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.Diode4A_ULV; +import static gregtech.api.enums.MetaTileEntityIDs.Diode8A_MAX; +import static gregtech.api.enums.MetaTileEntityIDs.Diode8A_ULV; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; + +import org.apache.commons.lang3.ArrayUtils; + +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.MTEBasicHull; +import gregtech.api.util.GTUtility; + +public class MTEDiode extends MTEBasicHull { + + private long maxAmps; + private long aAmps; + + public MTEDiode(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, StatCollector.translateToLocal("tooltip.tile.diode.0.name")); + this.maxAmps = this.getAmpsfromMeta(aID); + this.aAmps = this.maxAmps; + } + + public MTEDiode(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { + super.onFirstTick(aBaseMetaTileEntity); + if (this.maxAmps == 0 && !this.getBaseMetaTileEntity() + .getWorld().isRemote) { + this.maxAmps = this.getAmpsfromMeta( + this.getBaseMetaTileEntity() + .getMetaTileID()); + this.aAmps = this.maxAmps; + } + } + + @Override + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + super.onScrewdriverRightClick(side, aPlayer, aX, aY, aZ); + + if (this.getBaseMetaTileEntity() + .getWorld().isRemote) return; + if (!aPlayer.isSneaking()) { + --this.aAmps; + if (this.aAmps < 0) this.aAmps = this.maxAmps; + } else { + ++this.aAmps; + if (this.aAmps > this.maxAmps) this.aAmps = 0; + } + GTUtility.sendChatToPlayer(aPlayer, "Max Amps: " + this.aAmps); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setLong("maxAmp", this.maxAmps); + aNBT.setLong("Amps", this.aAmps); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + this.maxAmps = aNBT.getLong("maxAmp"); + this.aAmps = aNBT.getLong("Amps"); + super.loadNBTData(aNBT); + } + + @Override + public long maxAmperesOut() { + return this.aAmps; + } + + @Override + public long maxAmperesIn() { + return this.aAmps; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new MTEDiode(this.mName, this.mTier, this.mDescriptionArray, this.mTextures); + } + + private long getAmpsfromMeta(int meta) { + if (meta >= Diode2A_ULV.ID && meta <= Diode2A_MAX.ID) return 2L; + if (meta >= Diode4A_ULV.ID && meta <= Diode4A_MAX.ID) return 4L; + if (meta >= Diode8A_ULV.ID && meta <= Diode8A_MAX.ID) return 8L; + if (meta >= Diode12A_ULV.ID && meta <= Diode12A_MAX.ID) return 12L; + if (meta >= Diode16A_ULV.ID && meta <= Diode16A_MAX.ID) return 16L; + return 0L; + } + + @Override + public String[] getDescription() { + return ArrayUtils.addAll(this.mDescriptionArray); + } +} |
