From d698da152c3882fd3656954cbaa7ff5c0f47e2ef Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Mon, 18 Jul 2022 02:29:13 +0200 Subject: 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 --- .../api/interfaces/tileentity/IGregTechTileEntity.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java') 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); + } + } } -- cgit