diff options
author | Léa Gris <lea.gris@noiraude.net> | 2022-07-18 02:29:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-18 07:29:13 +0700 |
commit | d698da152c3882fd3656954cbaa7ff5c0f47e2ef (patch) | |
tree | 1d8f9b67e80340959cf4596f22b0bdf5d435ce75 /src/main/java/gregtech/api/interfaces | |
parent | a0875d0f57753fae9f608eddf651466b04182060 (diff) | |
download | GT5-Unofficial-d698da152c3882fd3656954cbaa7ff5c0f47e2ef.tar.gz GT5-Unofficial-d698da152c3882fd3656954cbaa7ff5c0f47e2ef.tar.bz2 GT5-Unofficial-d698da152c3882fd3656954cbaa7ff5c0f47e2ef.zip |
feat(tile): onRandomDisplayTick (#1138)
Adds onRandomDisplayTick method to the IGregTechTileEntity interface
that can proxy randomDisplayTick from block.
This allows to delegate block particles to the tile,
with a client-side-only processing.
Includes reference implementation for the Bronze Boiler
Diffstat (limited to 'src/main/java/gregtech/api/interfaces')
-rw-r--r-- | src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java | 10 | ||||
-rw-r--r-- | src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java index de69419fa5..65848fe96f 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java @@ -424,4 +424,14 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand return true; } + /** + * A randomly called display update to be able to add particles or other items for display + * + * @param aBaseMetaTileEntity The entity that will handle the {@see Block#randomDisplayTick} + */ + @SideOnly(Side.CLIENT) + default void onRandomDisplayTick(IGregTechTileEntity aBaseMetaTileEntity) { + /* do nothing */ + } + } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java index f92a403b60..94b93434e2 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java @@ -1,7 +1,10 @@ package gregtech.api.interfaces.tileentity; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.IDescribable; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.common.blocks.GT_Block_Machines; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -157,4 +160,15 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil } default void setShutdownStatus(boolean newStatus) {return;} + + /** + * A randomly called display update to be able to add particles or other items for display + * The event is proxied by the {@link GT_Block_Machines#randomDisplayTick} + */ + @SideOnly(Side.CLIENT) + default void onRandomDisplayTick() { + if (getMetaTileEntity() != null && getMetaTileEntity().getBaseMetaTileEntity() == this) { + getMetaTileEntity().onRandomDisplayTick(this); + } + } } |