diff --git a/src/main/java/gregtech/api/block/machines/BlockMachine.java b/src/main/java/gregtech/api/block/machines/BlockMachine.java index 5cac56bb49c..56ca1f9b151 100644 --- a/src/main/java/gregtech/api/block/machines/BlockMachine.java +++ b/src/main/java/gregtech/api/block/machines/BlockMachine.java @@ -10,7 +10,6 @@ import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.items.toolitem.ToolHelper; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.metatileentity.registry.MTERegistry; @@ -266,18 +265,13 @@ public boolean recolorBlock(@NotNull World world, @NotNull BlockPos pos, @NotNul @Override public void onBlockPlacedBy(World worldIn, @NotNull BlockPos pos, @NotNull IBlockState state, @NotNull EntityLivingBase placer, ItemStack stack) { - IGregTechTileEntity holder = (IGregTechTileEntity) worldIn.getTileEntity(pos); - MTERegistry registry = GregTechAPI.mteManager.getRegistry( - Objects.requireNonNull(stack.getItem().getRegistryName()).getNamespace()); + MetaTileEntity sampleMetaTileEntity = GTUtility.getMetaTileEntity(stack); - MetaTileEntity sampleMetaTileEntity = registry.getObjectById(stack.getItemDamage()); - if (holder == null || sampleMetaTileEntity == null) + if (sampleMetaTileEntity == null) return; - // TODO Fix this - if (stack.hasDisplayName() && holder instanceof MetaTileEntityHolder) { - ((MetaTileEntityHolder) holder).setCustomName(stack.getDisplayName()); - } + MetaTileEntity metaTileEntity = sampleMetaTileEntity.copy(); + var stackTag = stack.getTagCompound(); NBTTagCompound mteTag = null; if (stackTag != null && !stackTag.isEmpty()) { @@ -285,12 +279,12 @@ public void onBlockPlacedBy(World worldIn, @NotNull BlockPos pos, @NotNull IBloc var blockTag = stackTag.getCompoundTag(GregtechDataCodes.BLOCK_ENTITY_TAG); String customName = blockTag.getString(GregtechDataCodes.CUSTOM_NAME); if (!customName.isEmpty()) - ((MetaTileEntityHolder) holder).setCustomName(customName); + metaTileEntity.setCustomName(customName); mteTag = blockTag.getCompoundTag(GregtechDataCodes.TAG_KEY_MTE); List removed = new ArrayList<>(); for (var key : mteTag.getKeySet()) { - var trait = sampleMetaTileEntity.getMTETrait(key); + var trait = metaTileEntity.getMTETrait(key); if (trait == null) continue; removed.add(key); @@ -298,7 +292,20 @@ public void onBlockPlacedBy(World worldIn, @NotNull BlockPos pos, @NotNull IBloc removed.forEach(mteTag::removeTag); } } - MetaTileEntity metaTileEntity = holder.setMetaTileEntity(sampleMetaTileEntity, mteTag); + + if (mteTag != null) { + metaTileEntity.readMTETag(mteTag); + } + + if (!GTUtility.hasTileEntity(worldIn, pos)) { + worldIn.setTileEntity(pos, metaTileEntity); + } + + // TODO Fix this + if (stack.hasDisplayName()) { + metaTileEntity.setCustomName(stack.getDisplayName()); + } + if (mteTag == null) { if (stackTag != null && !stackTag.isEmpty()) metaTileEntity.initFromItemStackData(stackTag); @@ -372,11 +379,9 @@ public void getDrops(@NotNull NonNullList drops, @NotNull IBlockAcces if (!tagCompound.isEmpty()) itemStack.setTagCompound(tagCompound); // TODO Clean this up - if (metaTileEntity.getHolder() instanceof MetaTileEntityHolder) { - MetaTileEntityHolder holder = (MetaTileEntityHolder) metaTileEntity.getHolder(); - if (holder.hasCustomName()) { - itemStack.setStackDisplayName(holder.getName()); - } + // clean up how exactly? + if (metaTileEntity.hasCustomName()) { + itemStack.setStackDisplayName(metaTileEntity.getName()); } drops.add(itemStack); metaTileEntity.getDrops(drops, harvesters.get()); @@ -475,7 +480,10 @@ public void harvestBlock(@NotNull World worldIn, @NotNull EntityPlayer player, @ @Nullable @Override public TileEntity createNewTileEntity(@Nullable World worldIn, int meta) { - return new MetaTileEntityHolder(); + // i wonder if it would be a good idea to give a "proto" TE + // though that's really just mte holder but in a different way + // actually just return null, TE is handled elsewhere + return null; } @NotNull diff --git a/src/main/java/gregtech/api/capability/impl/CleanroomLogic.java b/src/main/java/gregtech/api/capability/impl/CleanroomLogic.java index 24dd0434e8f..25a77d6b995 100644 --- a/src/main/java/gregtech/api/capability/impl/CleanroomLogic.java +++ b/src/main/java/gregtech/api/capability/impl/CleanroomLogic.java @@ -178,7 +178,8 @@ public void setMinEnergyTier(int energyTier) { /** * writes all needed values to NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeToNBT(NBTTagCompound)} method + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeMTETag(NBTTagCompound)} + * method */ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { data.setBoolean("isActive", this.isActive); @@ -191,7 +192,7 @@ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { /** * reads all needed values from NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readFromNBT(NBTTagCompound)} + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readMTETag(NBTTagCompound)} * method */ public void readFromNBT(@NotNull NBTTagCompound data) { @@ -205,7 +206,7 @@ public void readFromNBT(@NotNull NBTTagCompound data) { /** * writes all needed values to InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#writeInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#writeInitialSyncDataMTE(PacketBuffer)} method */ public void writeInitialSyncData(@NotNull PacketBuffer buf) { buf.writeBoolean(this.isActive); @@ -218,7 +219,7 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { /** * reads all needed values from InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#receiveInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#receiveInitialSyncDataMTE(PacketBuffer)} method */ public void receiveInitialSyncData(@NotNull PacketBuffer buf) { setActive(buf.readBoolean()); diff --git a/src/main/java/gregtech/api/capability/impl/FluidDrillLogic.java b/src/main/java/gregtech/api/capability/impl/FluidDrillLogic.java index 4a80583e813..de0c585ace6 100644 --- a/src/main/java/gregtech/api/capability/impl/FluidDrillLogic.java +++ b/src/main/java/gregtech/api/capability/impl/FluidDrillLogic.java @@ -252,7 +252,8 @@ public boolean isInventoryFull() { /** * writes all needed values to NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeToNBT(NBTTagCompound)} method + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeMTETag(NBTTagCompound)} + * method */ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { data.setBoolean("isActive", this.isActive); @@ -266,7 +267,7 @@ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { /** * reads all needed values from NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readFromNBT(NBTTagCompound)} + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readMTETag(NBTTagCompound)} * method */ public void readFromNBT(@NotNull NBTTagCompound data) { @@ -281,7 +282,7 @@ public void readFromNBT(@NotNull NBTTagCompound data) { /** * writes all needed values to InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#writeInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#writeInitialSyncDataMTE(PacketBuffer)} method */ public void writeInitialSyncData(@NotNull PacketBuffer buf) { buf.writeBoolean(this.isActive); @@ -294,7 +295,7 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { /** * reads all needed values from InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#receiveInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#receiveInitialSyncDataMTE(PacketBuffer)} method */ public void receiveInitialSyncData(@NotNull PacketBuffer buf) { setActive(buf.readBoolean()); diff --git a/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java b/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java index 2565c02a7a5..d44ea1c9c2b 100644 --- a/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java +++ b/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java @@ -501,7 +501,8 @@ protected ICubeRenderer getPipeTexture() { /** * writes all needed values to NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeToNBT(NBTTagCompound)} method + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#writeMTETag(NBTTagCompound)} + * method */ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { data.setTag("xPos", new NBTTagInt(x.get())); @@ -525,7 +526,7 @@ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { /** * reads all needed values from NBT - * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readFromNBT(NBTTagCompound)} + * This MUST be called and returned in the MetaTileEntity's {@link MetaTileEntity#readMTETag(NBTTagCompound)} * method */ public void readFromNBT(@NotNull NBTTagCompound data) { @@ -550,7 +551,7 @@ public void readFromNBT(@NotNull NBTTagCompound data) { /** * writes all needed values to InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#writeInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#writeInitialSyncDataMTE(PacketBuffer)} method */ public void writeInitialSyncData(@NotNull PacketBuffer buf) { buf.writeInt(pipeLength); @@ -562,7 +563,7 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { /** * reads all needed values from InitialSyncData * This MUST be called and returned in the MetaTileEntity's - * {@link MetaTileEntity#receiveInitialSyncData(PacketBuffer)} method + * {@link MetaTileEntity#receiveInitialSyncDataMTE(PacketBuffer)} method */ public void receiveInitialSyncData(@NotNull PacketBuffer buf) { this.pipeLength = buf.readInt(); diff --git a/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java b/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java index b8fd6434292..3b42046706a 100644 --- a/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java +++ b/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java @@ -4,7 +4,6 @@ import gregtech.api.items.IDyeableItem; import gregtech.api.items.gui.ItemUIFactory; import gregtech.api.items.toolitem.behavior.IToolBehavior; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuis; import gregtech.api.unification.material.Material; @@ -481,8 +480,7 @@ public void setSelectedTool(int slot, ItemStack stack) { ItemStack stack = player.getHeldItem(hand); ToolStackHandler handler = getHandler(stack); if (handler.getSelectedStack().isEmpty() && - world.getTileEntity(pos) instanceof MetaTileEntityHolder holder && - holder.getMetaTileEntity() instanceof MetaTileEntityMaintenanceHatch maintenance) { + world.getTileEntity(pos) instanceof MetaTileEntityMaintenanceHatch maintenance) { maintenance.fixMaintenanceProblemsWithToolbelt(player, this, stack); return EnumActionResult.SUCCESS; } diff --git a/src/main/java/gregtech/api/metatileentity/GTBaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/GTBaseTileEntity.java new file mode 100644 index 00000000000..6f8188c302f --- /dev/null +++ b/src/main/java/gregtech/api/metatileentity/GTBaseTileEntity.java @@ -0,0 +1,574 @@ +package gregtech.api.metatileentity; + +import gregtech.api.block.machines.BlockMachine; +import gregtech.api.capability.GregtechDataCodes; +import gregtech.api.cover.Cover; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.api.metatileentity.registry.MTERegistry; +import gregtech.api.util.GTLog; +import gregtech.api.util.Mods; +import gregtech.api.util.TextFormattingUtil; +import gregtech.client.particle.GTNameTagParticle; +import gregtech.client.particle.GTParticleManager; +import gregtech.common.ConfigHolder; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.Mirror; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Rotation; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.Style; +import net.minecraft.util.text.TextComponentString; +import net.minecraft.util.text.TextComponentTranslation; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.IWorldNameable; +import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.fml.common.Optional; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import appeng.api.networking.IGridNode; +import appeng.api.networking.security.IActionHost; +import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; +import appeng.api.util.DimensionalCoord; +import appeng.me.helpers.AENetworkProxy; +import appeng.me.helpers.IGridProxyable; +import com.google.common.base.Preconditions; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnknownNullability; + +import java.text.DecimalFormat; +import java.util.ArrayList; + +import static gregtech.api.capability.GregtechDataCodes.INITIALIZE_MTE; + +@Optional.InterfaceList(value = { + @Optional.Interface(iface = "appeng.api.networking.security.IActionHost", + modid = Mods.Names.APPLIED_ENERGISTICS2, + striprefs = true), + @Optional.Interface(iface = "appeng.me.helpers.IGridProxyable", + modid = Mods.Names.APPLIED_ENERGISTICS2, + striprefs = true) }) +public abstract class GTBaseTileEntity extends TickableTileEntityBase implements + IGregTechTileEntity, + IWorldNameable, IActionHost, IGridProxyable { + + private boolean needToUpdateLightning = false; + private String customName; + @SideOnly(Side.CLIENT) + private GTNameTagParticle nameTagParticle; + + public static final int TRACKED_TICKS = 20; + private final int[] timeStatistics = new int[TRACKED_TICKS]; + private int timeStatisticsIndex = 0; + private int lagWarningCount = 0; + protected static final DecimalFormat tricorderFormat = new DecimalFormat("#.#########"); + + @Override + public void notifyBlockUpdate() { + getWorld().notifyNeighborsOfStateChange(pos, getBlockType(), false); + } + + @Override + public final void readFromNBT(@NotNull NBTTagCompound compound) { + super.readFromNBT(compound); + if (compound.hasKey(GregtechDataCodes.CUSTOM_NAME, Constants.NBT.TAG_STRING)) { + customName = compound.getString(GregtechDataCodes.CUSTOM_NAME); + } + if (compound.hasKey("MetaId", Constants.NBT.TAG_STRING)) { + readMTETag(compound.getCompoundTag("MetaTileEntity")); + if (Mods.AppliedEnergistics2.isModLoaded()) { + readFromNBT_AENetwork(compound); + } + } + } + + @NotNull + @Override + public final NBTTagCompound writeToNBT(@NotNull NBTTagCompound compound) { + super.writeToNBT(compound); + if (hasCustomName()) { + compound.setString(GregtechDataCodes.CUSTOM_NAME, getName()); + } + compound.setString("MetaId", getMetaID().toString()); + NBTTagCompound metaTileEntityData = new NBTTagCompound(); + writeMTETag(metaTileEntityData); + compound.setTag("MetaTileEntity", metaTileEntityData); + if (Mods.AppliedEnergistics2.isModLoaded()) { + writeToNBT_AENetwork(compound); + } + return compound; + } + + @Override + public void invalidate() { + super.invalidate(); + if (Mods.AppliedEnergistics2.isModLoaded()) { + invalidateAE(); + } + } + + @Override + public void update() { + long tickTime = System.nanoTime(); + + updateMTE(); + + if (this.needToUpdateLightning) { + getWorld().checkLight(getPos()); + this.needToUpdateLightning = false; + } + + if (!world.isRemote && isValid()) { + tickTime = System.nanoTime() - tickTime; + if (timeStatistics.length > 0) { + timeStatistics[timeStatisticsIndex] = (int) tickTime; + timeStatisticsIndex = (timeStatisticsIndex + 1) % timeStatistics.length; + } + if (tickTime > 100_000_000L && doTickProfileMessage() && lagWarningCount++ < 10) + GTLog.logger.warn("WARNING: Possible Lag Source at [" + getPos().getX() + ", " + getPos().getY() + + ", " + getPos().getZ() + "] in Dimension " + world.provider.getDimension() + " with " + + tickTime + "ns caused by an instance of " + getClass()); + } + + // increment only after current tick, so meta tile entities will get first tick as timer == 0 + // and update their settings which depend on getTimer() % N properly + super.update(); + } + + public ArrayList getDebugInfo(EntityPlayer player, int logLevel) { + ArrayList list = new ArrayList<>(); + if (logLevel > 2) { + if (isValid()) { + list.add(new TextComponentTranslation("behavior.tricorder.debug_machine", + new TextComponentTranslation(getMetaID().toString()) + .setStyle(new Style().setColor(TextFormatting.BLUE)), + new TextComponentTranslation("behavior.tricorder.debug_machine_valid") + .setStyle(new Style().setColor(TextFormatting.GREEN)))); + } else { + list.add(new TextComponentTranslation("behavior.tricorder.debug_machine", + new TextComponentTranslation(getMetaID().toString()) + .setStyle(new Style().setColor(TextFormatting.BLUE)), + new TextComponentTranslation("behavior.tricorder.debug_machine_invalid") + .setStyle(new Style().setColor(TextFormatting.RED)))); + } + } + if (logLevel > 1) { + double[] timeStats = getTimeStatistics(); + if (timeStats != null) { + double averageTickTime = timeStats[0]; + double worstTickTime = timeStats[1]; + + list.add(new TextComponentTranslation("behavior.tricorder.debug_cpu_load", + new TextComponentTranslation( + TextFormattingUtil.formatNumbers(averageTickTime / timeStatistics.length)) + .setStyle(new Style().setColor(TextFormatting.YELLOW)), + new TextComponentTranslation(TextFormattingUtil.formatNumbers(timeStatistics.length)) + .setStyle(new Style().setColor(TextFormatting.GREEN)), + new TextComponentTranslation(TextFormattingUtil.formatNumbers(worstTickTime)) + .setStyle(new Style().setColor(TextFormatting.RED)))); + list.add(new TextComponentTranslation("behavior.tricorder.debug_cpu_load_seconds", + tricorderFormat.format(worstTickTime / 1000000000))); + } + + if (lagWarningCount > 0) { + list.add(new TextComponentTranslation("behavior.tricorder.debug_lag_count", + new TextComponentTranslation(TextFormattingUtil.formatNumbers(lagWarningCount)) + .setStyle(new Style().setColor(TextFormatting.RED)), + new TextComponentTranslation(TextFormattingUtil.formatNumbers(100_000_000L)) + .setStyle(new Style().setColor(TextFormatting.RED)))); + } + } + return list; + } + + /** + * @return double array of length 2, with index 0 being the average time and index 1 the worst time, in ns. + * If there is no tick time, it will return null. + */ + public double[] getTimeStatistics() { + if (timeStatistics.length > 0) { + double averageTickTime = 0; + double worstTickTime = 0; + for (int tickTime : timeStatistics) { + averageTickTime += tickTime; + if (tickTime > worstTickTime) { + worstTickTime = tickTime; + } + } + return new double[] { averageTickTime, worstTickTime }; + } + return null; + } + + @Override + protected void addAdditionalData(NBTTagCompound updateTag) { + updateTag.setString("MetaId", getMetaID().toString()); + updateTag.setInteger("x", getPos().getX()); + updateTag.setInteger("y", getPos().getY()); + updateTag.setInteger("z", getPos().getZ()); + } + + @Override + public void writeInitialSyncData(@NotNull PacketBuffer buf) { + buf.writeString(getName()); + writeInitialSyncDataMTE(buf); + } + + @Override + public void receiveInitialSyncData(@NotNull PacketBuffer buf) { + setCustomName(buf.readString(Short.MAX_VALUE)); + receiveMTEInitializationData(buf); + } + + @Override + public void receiveCustomData(int discriminator, @NotNull PacketBuffer buffer) { + if (discriminator == GregtechDataCodes.INITIALIZE_MTE) { + receiveMTEInitializationData(buffer); + } + } + + /** + * Sets and initializes the MTE + * + * @param buf the buffer to read data from + */ + private void receiveMTEInitializationData(@NotNull PacketBuffer buf) { + this.receiveInitialSyncDataMTE(buf); + this.onPlacement(); + scheduleRenderUpdate(); + this.needToUpdateLightning = true; + } + + @Override + public boolean isValid() { + return !super.isInvalid(); + } + + @Override + public boolean isRemote() { + return getWorld().isRemote; + } + + @Override + public World world() { + return getWorld(); + } + + @Override + public @UnknownNullability World getWorld() { + return super.getWorld(); + } + + @Override + public BlockPos pos() { + return getPos(); + } + + @Override + public @UnknownNullability BlockPos getPos() { + return super.getPos(); + } + + @SuppressWarnings("ConstantConditions") // yes this CAN actually be null + @Override + public void markAsDirty() { + if (getWorld() != null && getPos() != null) { + getWorld().markChunkDirty(getPos(), this); + } + } + + @Override + public void onLoad() { + super.onLoad(); + } + + @Override + public final void onChunkUnload() { + super.onChunkUnload(); + onUnload(); + if (Mods.AppliedEnergistics2.isModLoaded()) { + onChunkUnloadAE(); + } + } + + @Override + public boolean shouldRefresh(@NotNull World world, @NotNull BlockPos pos, IBlockState oldState, + IBlockState newState) { + // MetaTileEntityHolder should never refresh (until block changes) + return oldState.getBlock() != newState.getBlock(); + } + + @Override + public void rotate(@NotNull Rotation rotationIn) { + setFrontFacing(rotationIn.rotate(getFrontFacing())); + } + + @Override + public void mirror(@NotNull Mirror mirrorIn) { + rotate(mirrorIn.toRotation(getFrontFacing())); + } + + @Override + public boolean shouldRenderInPass(int pass) { + for (EnumFacing side : EnumFacing.VALUES) { + Cover cover = getCoverAtSide(side); + if (cover instanceof IFastRenderMetaTileEntity fastRender && fastRender.shouldRenderInPass(pass)) { + return true; + } + } + if (this instanceof IFastRenderMetaTileEntity fastRender) { + return fastRender.shouldRenderInPass(pass); + } + return false; + } + + @NotNull + @Override + public AxisAlignedBB getRenderBoundingBox() { + if (getMetaTileEntity() instanceof IFastRenderMetaTileEntity fastRender) { + return fastRender.getRenderBoundingBox(); + } + return new AxisAlignedBB(getPos()); + } + + @Override + public boolean canRenderBreaking() { + return false; + } + + @Override + public boolean hasFastRenderer() { + return true; + } + + public boolean hasTESR() { + if (getMetaTileEntity() instanceof IFastRenderMetaTileEntity) { + return true; + } + for (EnumFacing side : EnumFacing.VALUES) { + Cover cover = getCoverAtSide(side); + if (cover instanceof IFastRenderMetaTileEntity) { + return true; + } + } + return false; + } + + @Override + public int getUIColorOverride() { + if (ConfigHolder.client.useSprayCanColorInUI) { + return getPaintingColor(); + } + return -1; + } + + public void setCustomName(String customName) { + if (!getName().equals(customName)) { + this.customName = customName; + if (world.isRemote) { + updateNameTagParticle(); + } else { + markAsDirty(); + } + } + } + + @SideOnly(Side.CLIENT) + private void updateNameTagParticle() { + if (hasCustomName()) { + if (nameTagParticle == null) { + nameTagParticle = new GTNameTagParticle(this, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5); + GTParticleManager.INSTANCE.addEffect(nameTagParticle); + } + } else { + if (nameTagParticle != null) { + nameTagParticle.setExpired(); + nameTagParticle = null; + } + } + } + + @NotNull + @Override + public String getName() { + return this.customName == null ? "" : this.customName; + } + + @Override + public boolean hasCustomName() { + return this.customName != null && !this.customName.isEmpty(); + } + + @NotNull + @Override + public ITextComponent getDisplayName() { + return this.hasCustomName() ? + new TextComponentString(this.getName()) : + new TextComponentTranslation(getMetaFullName()); + } + + @Override + public MetaTileEntity setMetaTileEntity(@NotNull MetaTileEntity mte, @Nullable NBTTagCompound tag) { + Preconditions.checkNotNull(mte, "metaTileEntity"); + if (!getMetaID().equals(mte.getMetaID())) { + GTLog.logger.warn("attempting to change the MTE from {} to {}", + getClass().getSimpleName(), + mte.getClass().getSimpleName()); + return getMetaTileEntity(); + } + if (tag != null && !tag.isEmpty()) { + getMetaTileEntity().readMTETag(tag); + } + if (hasWorld() && !getWorld().isRemote) { + updateBlockOpacity(); + writeCustomData(INITIALIZE_MTE, buffer -> { + MTERegistry registry = mte.getRegistry(); + buffer.writeVarInt(registry.getNetworkId()); + buffer.writeVarInt(registry.getIdByObjectName(getMetaID())); + getMetaTileEntity().writeInitialSyncDataMTE(buffer); + }); + this.needToUpdateLightning = true; + getWorld().neighborChanged(getPos(), getBlockType(), getPos()); + markDirty(); + } + return getMetaTileEntity(); + } + + private void updateBlockOpacity() { + IBlockState currentState = world.getBlockState(getPos()); + boolean isMetaTileEntityOpaque = getMetaTileEntity().isOpaqueCube(); + if (currentState.getValue(BlockMachine.OPAQUE) != isMetaTileEntityOpaque) { + world.setBlockState(getPos(), currentState.withProperty(BlockMachine.OPAQUE, isMetaTileEntityOpaque)); + } + } + + // this should return itself + + @Override + public abstract MetaTileEntity getMetaTileEntity(); + + // MetaTileEntity Methods + + protected abstract void writeInitialSyncDataMTE(@NotNull PacketBuffer buf); + + public abstract void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf); + + protected abstract void onPlacement(); + + protected abstract void updateMTE(); + + public abstract NBTTagCompound writeMTETag(NBTTagCompound tagCompound); + + public abstract void readMTETag(NBTTagCompound tagCompound); + + protected abstract MTERegistry getRegistry(); + + protected abstract boolean doTickProfileMessage(); + + protected abstract void onUnload(); + + protected abstract void setFrontFacing(EnumFacing facing); + + protected abstract EnumFacing getFrontFacing(); + + protected abstract Cover getCoverAtSide(EnumFacing side); + + public abstract int getPaintingColor(); + + public abstract ResourceLocation getMetaID(); + + public String getMetaName() { + return String.format("%s.machine.%s", getMetaID().getNamespace(), getMetaID().getPath()); + } + + public final String getMetaFullName() { + return getMetaName() + ".name"; + } + + // AE2 Methods + + @Nullable + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public IGridNode getGridNode(@NotNull AEPartLocation part) { + // Forbid it connects the faces it shouldn't connect. + if (this.getCableConnectionType(part) == AECableType.NONE) { + return null; + } + AENetworkProxy proxy = getProxy(); + return proxy == null ? null : proxy.getNode(); + } + + @NotNull + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public abstract AECableType getCableConnectionType(@NotNull AEPartLocation part); + + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public void securityBreak() {} + + @NotNull + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public IGridNode getActionableNode() { + AENetworkProxy proxy = getProxy(); + return proxy == null ? null : proxy.getNode(); + } + + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public abstract AENetworkProxy getProxy(); + + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public DimensionalCoord getLocation() { + return new DimensionalCoord(this); + } + + @Override + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public void gridChanged() {} + + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public void readFromNBT_AENetwork(NBTTagCompound data) { + AENetworkProxy proxy = getProxy(); + if (proxy != null) { + proxy.readFromNBT(data); + } + } + + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + public void writeToNBT_AENetwork(NBTTagCompound data) { + AENetworkProxy proxy = getProxy(); + if (proxy != null) { + proxy.writeToNBT(data); + } + } + + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + void onChunkUnloadAE() { + AENetworkProxy proxy = getProxy(); + if (proxy != null) { + proxy.onChunkUnload(); + } + } + + @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) + void invalidateAE() { + AENetworkProxy proxy = getProxy(); + if (proxy != null) { + proxy.invalidate(); + } + } +} diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index e3ca9cab534..1db030ca365 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -119,7 +119,8 @@ import static gregtech.api.capability.GregtechDataCodes.*; -public abstract class MetaTileEntity implements ISyncedTileEntity, CoverHolder, IVoidable, IGuiHolder { +public abstract class MetaTileEntity extends GTBaseTileEntity + implements ISyncedTileEntity, CoverHolder, IVoidable, IGuiHolder { public static final IndexedCuboid6 FULL_CUBE_COLLISION = new IndexedCuboid6(null, Cuboid6.full); @@ -177,6 +178,7 @@ public abstract class MetaTileEntity implements ISyncedTileEntity, CoverHolder, protected MetaTileEntity(@NotNull ResourceLocation metaTileEntityId) { this.metaTileEntityId = metaTileEntityId; + this.holder = this; this.registry = GregTechAPI.mteManager.getRegistry(metaTileEntityId.getNamespace()); initializeInventory(); } @@ -191,53 +193,17 @@ protected void initializeInventory() { this.fluidInventory = new FluidHandlerProxy(importFluids, exportFluids); } + // todo remove this + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "2.10") public IGregTechTileEntity getHolder() { - return holder; - } - - public abstract MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity); - - @Override - public World getWorld() { - return holder == null ? null : holder.world(); - } - - @Override - public BlockPos getPos() { - return holder == null ? null : holder.pos(); - } - - @Override - public void markDirty() { - if (holder != null) { - holder.markAsDirty(); - } - } - - public boolean isFirstTick() { - return holder != null && holder.isFirstTick(); + return this.holder; } - /** - * Replacement for former getTimer() call. - * - * @return Timer value, starting at zero, with a random offset [0, 20). - */ - @Override - public long getOffsetTimer() { - return holder == null ? 0L : holder.getOffsetTimer(); - } - - @Override - public @Nullable TileEntity getNeighbor(@NotNull EnumFacing facing) { - return holder != null ? holder.getNeighbor(facing) : null; - } - - @Override - public final void writeCustomData(int discriminator, @NotNull Consumer<@NotNull PacketBuffer> dataWriter) { - if (holder != null) { - holder.writeCustomData(discriminator, dataWriter); - } + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "2.10") + public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + return copy(); } public void addDebugInfo(List list) {} @@ -385,12 +351,14 @@ public ICapabilityProvider initItemStackCapabilities(ItemStack itemStack) { return null; } - public String getMetaName() { - return String.format("%s.machine.%s", metaTileEntityId.getNamespace(), metaTileEntityId.getPath()); + @Override + public MetaTileEntity getMetaTileEntity() { + return this; } - public final String getMetaFullName() { - return getMetaName() + ".name"; + @Override + public ResourceLocation getMetaID() { + return this.metaTileEntityId; } public void addNotifiedInput(Object input) { @@ -537,9 +505,8 @@ public boolean onRightClick(EntityPlayer playerIn, EnumHand hand, EnumFacing fac if (heldStack.getItem() == Items.NAME_TAG) { if (playerIn.isSneaking() && heldStack.getTagCompound() != null && heldStack.getTagCompound().hasKey("display")) { - MetaTileEntityHolder mteHolder = (MetaTileEntityHolder) getHolder(); - mteHolder.setCustomName(heldStack.getTagCompound().getCompoundTag("display").getString("Name")); + setCustomName(heldStack.getTagCompound().getCompoundTag("display").getString("Name")); if (!playerIn.isCreative()) { heldStack.shrink(1); } @@ -847,7 +814,7 @@ private void updateLightValue() { } } - public void update() { + public void updateMTE() { if (!allowTickAcceleration() && getWorld().getMinecraftServer() != null) { int currentTick = getWorld().getMinecraftServer().getTickCounter(); if (currentTick == lastTick) { @@ -1012,7 +979,7 @@ public int getHarvestLevel() { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { buf.writeByte(this.frontFacing.getIndex()); buf.writeInt(this.paintingColor); buf.writeShort(this.mteTraitByNetworkId.size()); @@ -1028,8 +995,7 @@ public boolean isPainted() { return this.paintingColor != -1; } - @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { this.frontFacing = EnumFacing.VALUES[buf.readByte()]; this.paintingColor = buf.readInt(); int amountOfTraits = buf.readShort(); @@ -1065,6 +1031,7 @@ public void writeCoverData(@NotNull Cover cover, int discriminator, @NotNull Con @Override public void receiveCustomData(int dataId, @NotNull PacketBuffer buf) { + super.receiveCustomData(dataId, buf); if (dataId == UPDATE_FRONT_FACING) { this.frontFacing = EnumFacing.VALUES[buf.readByte()]; scheduleRenderUpdate(); @@ -1264,14 +1231,9 @@ public final void setOutputRedstoneSignal(EnumFacing side, int strength) { } } - @Override - public void notifyBlockUpdate() { - if (holder != null) holder.notifyBlockUpdate(); - } - @Override public void scheduleRenderUpdate() { - if (holder != null) holder.scheduleRenderUpdate(); + super.scheduleRenderUpdate(); // this call is required } public void setFrontFacing(EnumFacing frontFacing) { @@ -1317,7 +1279,7 @@ protected boolean shouldSerializeInventories() { return true; } - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setInteger("FrontFacing", frontFacing.getIndex()); if (isPainted()) { data.setInteger(TAG_KEY_PAINTING_COLOR, paintingColor); @@ -1349,7 +1311,7 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { return data; } - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { this.frontFacing = EnumFacing.VALUES[data.getInteger("FrontFacing")]; if (data.hasKey(TAG_KEY_PAINTING_COLOR)) { this.paintingColor = data.getInteger(TAG_KEY_PAINTING_COLOR); @@ -1377,11 +1339,6 @@ public void readFromNBT(NBTTagCompound data) { } } - @Override - public boolean isValid() { - return getHolder() != null && getHolder().isValid(); - } - public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, importItems); clearInventory(itemBuffer, exportItems); diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntityHolder.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntityHolder.java index 6884f33ac38..e8510a0b522 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntityHolder.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntityHolder.java @@ -1,61 +1,34 @@ package gregtech.api.metatileentity; import gregtech.api.GregTechAPI; -import gregtech.api.block.machines.BlockMachine; -import gregtech.api.capability.GregtechDataCodes; import gregtech.api.cover.Cover; -import gregtech.api.gui.IUIHolder; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.registry.MTERegistry; -import gregtech.api.util.GTLog; +import gregtech.api.util.GTUtility; import gregtech.api.util.Mods; -import gregtech.api.util.TextFormattingUtil; -import gregtech.client.particle.GTNameTagParticle; -import gregtech.client.particle.GTParticleManager; -import gregtech.common.ConfigHolder; -import gregtech.core.network.packets.PacketRecoverMTE; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumFacing; import net.minecraft.util.Mirror; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Rotation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.Style; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.IWorldNameable; -import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.fml.common.Optional.Interface; import net.minecraftforge.fml.common.Optional.InterfaceList; import net.minecraftforge.fml.common.Optional.Method; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import appeng.api.networking.IGridNode; -import appeng.api.networking.security.IActionHost; import appeng.api.util.AECableType; import appeng.api.util.AEPartLocation; -import appeng.api.util.DimensionalCoord; import appeng.me.helpers.AENetworkProxy; -import appeng.me.helpers.IGridProxyable; import com.google.common.base.Preconditions; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.text.DecimalFormat; -import java.util.ArrayList; - import static gregtech.api.capability.GregtechDataCodes.INITIALIZE_MTE; +@Deprecated +@ApiStatus.ScheduledForRemoval(inVersion = "2.10") @InterfaceList(value = { @Interface(iface = "appeng.api.networking.security.IActionHost", modid = Mods.Names.APPLIED_ENERGISTICS2, @@ -63,20 +36,14 @@ @Interface(iface = "appeng.me.helpers.IGridProxyable", modid = Mods.Names.APPLIED_ENERGISTICS2, striprefs = true) }) -public class MetaTileEntityHolder extends TickableTileEntityBase implements IGregTechTileEntity, IUIHolder, - IWorldNameable, IActionHost, IGridProxyable { +public class MetaTileEntityHolder extends GTBaseTileEntity { MetaTileEntity metaTileEntity; - private boolean needToUpdateLightning = false; - private String customName; - @SideOnly(Side.CLIENT) - private GTNameTagParticle nameTagParticle; - public static final int TRACKED_TICKS = 20; - private final int[] timeStatistics = new int[TRACKED_TICKS]; - private int timeStatisticsIndex = 0; - private int lagWarningCount = 0; - protected static final DecimalFormat tricorderFormat = new DecimalFormat("#.#########"); + @Override + public MetaTileEntity copy() { + return metaTileEntity == null ? null : metaTileEntity.copy(); + } public MetaTileEntity getMetaTileEntity() { return metaTileEntity; @@ -92,23 +59,8 @@ public MetaTileEntity getMetaTileEntity() { public MetaTileEntity setMetaTileEntity(@NotNull MetaTileEntity sampleMetaTileEntity, @Nullable NBTTagCompound tagCompound) { Preconditions.checkNotNull(sampleMetaTileEntity, "metaTileEntity"); - setRawMetaTileEntity(sampleMetaTileEntity.createMetaTileEntity(this)); - if (tagCompound != null && !tagCompound.isEmpty()) - getMetaTileEntity().readFromNBT(tagCompound); - if (hasWorld() && !getWorld().isRemote) { - updateBlockOpacity(); - writeCustomData(INITIALIZE_MTE, buffer -> { - buffer.writeVarInt(sampleMetaTileEntity.getRegistry().getNetworkId()); - buffer.writeVarInt( - sampleMetaTileEntity.getRegistry().getIdByObjectName(getMetaTileEntity().metaTileEntityId)); - getMetaTileEntity().writeInitialSyncData(buffer); - }); - // just to update neighbours so cables and other things will work properly - this.needToUpdateLightning = true; - world.neighborChanged(getPos(), getBlockType(), getPos()); - markDirty(); - } - return metaTileEntity; + setRawMetaTileEntity(sampleMetaTileEntity.copy()); + return super.setMetaTileEntity(sampleMetaTileEntity, tagCompound); } protected void setRawMetaTileEntity(MetaTileEntity metaTileEntity) { @@ -116,71 +68,12 @@ protected void setRawMetaTileEntity(MetaTileEntity metaTileEntity) { this.metaTileEntity.holder = this; } - private void updateBlockOpacity() { - IBlockState currentState = world.getBlockState(getPos()); - boolean isMetaTileEntityOpaque = metaTileEntity.isOpaqueCube(); - if (currentState.getValue(BlockMachine.OPAQUE) != isMetaTileEntityOpaque) { - world.setBlockState(getPos(), currentState.withProperty(BlockMachine.OPAQUE, isMetaTileEntityOpaque)); - } - } - - @Override - public void notifyBlockUpdate() { - getWorld().notifyNeighborsOfStateChange(pos, getBlockType(), false); - } - - @Override - public void readFromNBT(@NotNull NBTTagCompound compound) { - super.readFromNBT(compound); - customName = compound.getString(GregtechDataCodes.CUSTOM_NAME); - if (compound.hasKey("MetaId", NBT.TAG_STRING)) { - String metaTileEntityIdRaw = compound.getString("MetaId"); - ResourceLocation metaTileEntityId = new ResourceLocation(metaTileEntityIdRaw); - MTERegistry registry = GregTechAPI.mteManager.getRegistry(metaTileEntityId.getNamespace()); - MetaTileEntity sampleMetaTileEntity = registry.getObject(metaTileEntityId); - NBTTagCompound metaTileEntityData = compound.getCompoundTag("MetaTileEntity"); - if (sampleMetaTileEntity != null) { - setRawMetaTileEntity(sampleMetaTileEntity.createMetaTileEntity(this)); - /* - * Note: NBTs need to be read before onAttached is run, since NBTs may contain important information - * about the composition of the BlockPattern that onAttached may generate. - */ - this.metaTileEntity.readFromNBT(metaTileEntityData); - } else { - GTLog.logger.error("Failed to load MetaTileEntity with invalid ID {}", metaTileEntityIdRaw); - } - if (Mods.AppliedEnergistics2.isModLoaded()) { - readFromNBT_AENetwork(compound); - } - } - } - - @NotNull - @Override - public NBTTagCompound writeToNBT(@NotNull NBTTagCompound compound) { - super.writeToNBT(compound); - compound.setString(GregtechDataCodes.CUSTOM_NAME, getName()); - if (metaTileEntity != null) { - compound.setString("MetaId", metaTileEntity.metaTileEntityId.toString()); - NBTTagCompound metaTileEntityData = new NBTTagCompound(); - metaTileEntity.writeToNBT(metaTileEntityData); - compound.setTag("MetaTileEntity", metaTileEntityData); - if (Mods.AppliedEnergistics2.isModLoaded()) { - writeToNBT_AENetwork(compound); - } - } - return compound; - } - @Override public void invalidate() { if (metaTileEntity != null) { metaTileEntity.invalidate(); } super.invalidate(); - if (Mods.AppliedEnergistics2.isModLoaded()) { - invalidateAE(); - } } @Override @@ -198,130 +91,34 @@ public T getCapability(@NotNull Capability capability, @Nullable EnumFaci } @Override - public void update() { - long tickTime = System.nanoTime(); + protected void updateMTE() { if (metaTileEntity != null) { - metaTileEntity.update(); - } else if (world.isRemote) { // recover the mte - GregTechAPI.networkHandler.sendToServer(new PacketRecoverMTE(world.provider.getDimension(), getPos())); - } else { // remove the block - if (world.getBlockState(pos).getBlock() instanceof BlockMachine) { - world.setBlockToAir(pos); - } - } - - if (this.needToUpdateLightning) { - getWorld().checkLight(getPos()); - this.needToUpdateLightning = false; - } - - if (!world.isRemote && metaTileEntity != null && getMetaTileEntity().isValid()) { - tickTime = System.nanoTime() - tickTime; - if (timeStatistics.length > 0) { - timeStatistics[timeStatisticsIndex] = (int) tickTime; - timeStatisticsIndex = (timeStatisticsIndex + 1) % timeStatistics.length; - } - if (tickTime > 100_000_000L && getMetaTileEntity().doTickProfileMessage() && lagWarningCount++ < 10) - GTLog.logger.warn("WARNING: Possible Lag Source at [" + getPos().getX() + ", " + getPos().getY() + - ", " + getPos().getZ() + "] in Dimension " + world.provider.getDimension() + " with " + - tickTime + "ns caused by an instance of " + getMetaTileEntity().getClass()); - } - - // increment only after current tick, so meta tile entities will get first tick as timer == 0 - // and update their settings which depend on getTimer() % N properly - super.update(); - } - - public ArrayList getDebugInfo(EntityPlayer player, int logLevel) { - ArrayList list = new ArrayList<>(); - if (logLevel > 2) { - if (isValid()) { - list.add(new TextComponentTranslation("behavior.tricorder.debug_machine", - new TextComponentTranslation(getMetaTileEntity().metaTileEntityId.toString()) - .setStyle(new Style().setColor(TextFormatting.BLUE)), - new TextComponentTranslation("behavior.tricorder.debug_machine_valid") - .setStyle(new Style().setColor(TextFormatting.GREEN)))); - } else if (metaTileEntity == null) { - // noinspection NoTranslation - list.add(new TextComponentTranslation("behavior.tricorder.debug_machine", - new TextComponentTranslation("-1").setStyle(new Style().setColor(TextFormatting.BLUE)), - new TextComponentTranslation("behavior.tricorder.debug_machine_invalid_null") - .setStyle(new Style().setColor(TextFormatting.RED)))); - } else { - list.add(new TextComponentTranslation("behavior.tricorder.debug_machine", - new TextComponentTranslation(getMetaTileEntity().metaTileEntityId.toString()) - .setStyle(new Style().setColor(TextFormatting.BLUE)), - new TextComponentTranslation("behavior.tricorder.debug_machine_invalid") - .setStyle(new Style().setColor(TextFormatting.RED)))); - } + metaTileEntity.updateMTE(); } - if (logLevel > 1) { - double[] timeStats = getTimeStatistics(); - if (timeStats != null) { - double averageTickTime = timeStats[0]; - double worstTickTime = timeStats[1]; - - list.add(new TextComponentTranslation("behavior.tricorder.debug_cpu_load", - new TextComponentTranslation( - TextFormattingUtil.formatNumbers(averageTickTime / timeStatistics.length)) - .setStyle(new Style().setColor(TextFormatting.YELLOW)), - new TextComponentTranslation(TextFormattingUtil.formatNumbers(timeStatistics.length)) - .setStyle(new Style().setColor(TextFormatting.GREEN)), - new TextComponentTranslation(TextFormattingUtil.formatNumbers(worstTickTime)) - .setStyle(new Style().setColor(TextFormatting.RED)))); - list.add(new TextComponentTranslation("behavior.tricorder.debug_cpu_load_seconds", - tricorderFormat.format(worstTickTime / 1000000000))); - } - - if (lagWarningCount > 0) { - list.add(new TextComponentTranslation("behavior.tricorder.debug_lag_count", - new TextComponentTranslation(TextFormattingUtil.formatNumbers(lagWarningCount)) - .setStyle(new Style().setColor(TextFormatting.RED)), - new TextComponentTranslation(TextFormattingUtil.formatNumbers(100_000_000L)) - .setStyle(new Style().setColor(TextFormatting.RED)))); - } - } - return list; - } - - /** - * @return double array of length 2, with index 0 being the average time and index 1 the worst time, in ns. - * If there is no tick time, it will return null. - */ - public double[] getTimeStatistics() { - if (timeStatistics.length > 0) { - double averageTickTime = 0; - double worstTickTime = 0; - for (int tickTime : timeStatistics) { - averageTickTime += tickTime; - if (tickTime > worstTickTime) { - worstTickTime = tickTime; - } - } - return new double[] { averageTickTime, worstTickTime }; - } - return null; } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - buf.writeString(getName()); + protected void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { if (metaTileEntity != null) { buf.writeBoolean(true); buf.writeVarInt(metaTileEntity.getRegistry().getNetworkId()); buf.writeVarInt(metaTileEntity.getRegistry().getIdByObjectName(metaTileEntity.metaTileEntityId)); - metaTileEntity.writeInitialSyncData(buf); + metaTileEntity.writeInitialSyncDataMTE(buf); } else buf.writeBoolean(false); } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - setCustomName(buf.readString(Short.MAX_VALUE)); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { if (buf.readBoolean()) { receiveMTEInitializationData(buf); } } + @Override + public void receiveInitialSyncData(@NotNull PacketBuffer buf) { + setCustomName(buf.readString(Short.MAX_VALUE)); + } + @Override public void receiveCustomData(int discriminator, @NotNull PacketBuffer buffer) { if (discriminator == INITIALIZE_MTE) { @@ -342,9 +139,8 @@ private void receiveMTEInitializationData(@NotNull PacketBuffer buf) { MTERegistry registry = GregTechAPI.mteManager.getRegistry(networkId); setMetaTileEntity(registry.getObjectById(metaTileEntityId)); this.metaTileEntity.onPlacement(); - this.metaTileEntity.receiveInitialSyncData(buf); + this.metaTileEntity.receiveInitialSyncDataMTE(buf); scheduleRenderUpdate(); - this.needToUpdateLightning = true; } @Override @@ -352,29 +148,6 @@ public boolean isValid() { return !super.isInvalid() && metaTileEntity != null; } - @Override - public boolean isRemote() { - return getWorld().isRemote; - } - - @Override - public World world() { - return getWorld(); - } - - @Override - public BlockPos pos() { - return getPos(); - } - - @SuppressWarnings("ConstantConditions") // yes this CAN actually be null - @Override - public void markAsDirty() { - if (getWorld() != null && getPos() != null) { - getWorld().markChunkDirty(getPos(), this); - } - } - @Override public void onLoad() { super.onLoad(); @@ -384,21 +157,10 @@ public void onLoad() { } @Override - public void onChunkUnload() { - super.onChunkUnload(); + protected void onUnload() { if (metaTileEntity != null) { metaTileEntity.onUnload(); } - if (Mods.AppliedEnergistics2.isModLoaded()) { - onChunkUnloadAE(); - } - } - - @Override - public boolean shouldRefresh(@NotNull World world, @NotNull BlockPos pos, IBlockState oldState, - IBlockState newState) { - return oldState.getBlock() != newState.getBlock(); // MetaTileEntityHolder should never refresh (until block - // changes) } @Override @@ -430,103 +192,64 @@ public boolean shouldRenderInPass(int pass) { return false; } - @NotNull @Override - public AxisAlignedBB getRenderBoundingBox() { - if (metaTileEntity instanceof IFastRenderMetaTileEntity) { - return ((IFastRenderMetaTileEntity) metaTileEntity).getRenderBoundingBox(); + public ResourceLocation getMetaID() { + if (metaTileEntity != null) { + return metaTileEntity.getMetaID(); } - return new AxisAlignedBB(getPos()); + return GTUtility.gregtechId("unnamed"); } @Override - public boolean canRenderBreaking() { - return false; - } - - @Override - public boolean hasFastRenderer() { - return true; + public int getPaintingColor() { + if (metaTileEntity != null) { + return metaTileEntity.getPaintingColor(); + } + return -1; } - public boolean hasTESR() { - if (metaTileEntity == null) return false; - if (metaTileEntity instanceof IFastRenderMetaTileEntity) { - return true; - } - for (EnumFacing side : EnumFacing.VALUES) { - Cover cover = metaTileEntity.getCoverAtSide(side); - if (cover instanceof IFastRenderMetaTileEntity) { - return true; - } + protected void onPlacement() { + if (metaTileEntity != null) { + metaTileEntity.onPlacement(); } - return false; } - @Override - public int getUIColorOverride() { - if (metaTileEntity == null) return -1; - if (ConfigHolder.client.useSprayCanColorInUI) { - return metaTileEntity.getPaintingColor(); + public NBTTagCompound writeMTETag(NBTTagCompound tagCompound) { + if (metaTileEntity != null) { + return metaTileEntity.writeMTETag(tagCompound); } - return -1; + return null; } - public void setCustomName(String customName) { - if (!getName().equals(customName)) { - this.customName = customName; - if (world.isRemote) { - updateNameTagParticle(); - } else { - markAsDirty(); - } + public void readMTETag(NBTTagCompound tagCompound) { + if (metaTileEntity != null) { + metaTileEntity.readMTETag(tagCompound); } } - @SideOnly(Side.CLIENT) - private void updateNameTagParticle() { - if (hasCustomName()) { - if (nameTagParticle == null) { - nameTagParticle = new GTNameTagParticle(this, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5); - GTParticleManager.INSTANCE.addEffect(nameTagParticle); - } - } else { - if (nameTagParticle != null) { - nameTagParticle.setExpired(); - nameTagParticle = null; - } + protected MTERegistry getRegistry() { + if (metaTileEntity != null) { + return metaTileEntity.getRegistry(); } + return GregTechAPI.mteManager.getRegistry("gregtech"); } - @NotNull - @Override - public String getName() { - return this.customName == null ? "" : this.customName; + protected boolean doTickProfileMessage() { + return metaTileEntity != null && metaTileEntity.doTickProfileMessage(); } - @Override - public boolean hasCustomName() { - return this.customName != null && !this.customName.isEmpty(); + protected void setFrontFacing(EnumFacing facing) { + if (metaTileEntity != null) { + metaTileEntity.setFrontFacing(facing); + } } - @NotNull - @Override - public ITextComponent getDisplayName() { - return this.hasCustomName() ? new TextComponentString(this.getName()) : - metaTileEntity != null ? new TextComponentTranslation(metaTileEntity.getMetaFullName()) : - new TextComponentString(this.getName()); + protected EnumFacing getFrontFacing() { + return metaTileEntity == null ? EnumFacing.NORTH : metaTileEntity.getFrontFacing(); } - @Nullable - @Override - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public IGridNode getGridNode(@NotNull AEPartLocation part) { - // Forbid it connects the faces it shouldn't connect. - if (this.getCableConnectionType(part) == AECableType.NONE) { - return null; - } - AENetworkProxy proxy = getProxy(); - return proxy == null ? null : proxy.getNode(); + protected Cover getCoverAtSide(EnumFacing side) { + return metaTileEntity == null ? null : metaTileEntity.getCoverAtSide(side); } @NotNull @@ -536,30 +259,12 @@ public AECableType getCableConnectionType(@NotNull AEPartLocation part) { return metaTileEntity == null ? AECableType.NONE : metaTileEntity.getCableConnectionType(part); } - @Override - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public void securityBreak() {} - - @NotNull - @Override - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public IGridNode getActionableNode() { - AENetworkProxy proxy = getProxy(); - return proxy == null ? null : proxy.getNode(); - } - @Override @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) public AENetworkProxy getProxy() { return metaTileEntity == null ? null : metaTileEntity.getProxy(); } - @Override - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public DimensionalCoord getLocation() { - return new DimensionalCoord(this); - } - @Override @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) public void gridChanged() { @@ -567,36 +272,4 @@ public void gridChanged() { metaTileEntity.gridChanged(); } } - - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public void readFromNBT_AENetwork(NBTTagCompound data) { - AENetworkProxy proxy = getProxy(); - if (proxy != null) { - proxy.readFromNBT(data); - } - } - - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - public void writeToNBT_AENetwork(NBTTagCompound data) { - AENetworkProxy proxy = getProxy(); - if (proxy != null) { - proxy.writeToNBT(data); - } - } - - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - void onChunkUnloadAE() { - AENetworkProxy proxy = getProxy(); - if (proxy != null) { - proxy.onChunkUnload(); - } - } - - @Method(modid = Mods.Names.APPLIED_ENERGISTICS2) - void invalidateAE() { - AENetworkProxy proxy = getProxy(); - if (proxy != null) { - proxy.invalidate(); - } - } } diff --git a/src/main/java/gregtech/api/metatileentity/SimpleGeneratorMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/SimpleGeneratorMetaTileEntity.java index e4443e15cd5..a94dec84bd6 100644 --- a/src/main/java/gregtech/api/metatileentity/SimpleGeneratorMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/SimpleGeneratorMetaTileEntity.java @@ -9,7 +9,6 @@ import gregtech.api.gui.GuiTextures; import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.LabelWidget; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.client.renderer.ICubeRenderer; import gregtech.client.renderer.texture.Textures; @@ -51,7 +50,7 @@ public SimpleGeneratorMetaTileEntity(ResourceLocation metaTileEntityId, RecipeMa } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SimpleGeneratorMetaTileEntity(metaTileEntityId, workable.getRecipeMap(), renderer, getTier(), getTankScalingFunction(), handlesRecipeOutputs); } diff --git a/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java index 5ecd01baa1a..735c1860aca 100644 --- a/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java @@ -20,7 +20,6 @@ import gregtech.api.gui.widgets.SlotWidget; import gregtech.api.gui.widgets.ToggleButtonWidget; import gregtech.api.items.itemhandlers.GTItemStackHandler; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.util.GTTransferUtils; import gregtech.api.util.GTUtility; @@ -115,7 +114,7 @@ public SimpleMachineMetaTileEntity(ResourceLocation metaTileEntityId, RecipeMap< } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SimpleMachineMetaTileEntity(metaTileEntityId, workable.getRecipeMap(), renderer, getTier(), hasFrontFacing, getTankScalingFunction(), tickingParticle, randomParticle); } @@ -200,8 +199,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { ((EnergyContainerHandler) this.energyContainer).dischargeOrRechargeEnergyContainers(chargerInventory, 0); @@ -271,8 +270,8 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("ChargerInventory", chargerInventory.serializeNBT()); if (this.circuitInventory != null) { this.circuitInventory.write(data); @@ -287,8 +286,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.chargerInventory.deserializeNBT(data.getCompoundTag("ChargerInventory")); if (this.circuitInventory != null) { if (data.hasKey("CircuitInventory", Constants.NBT.TAG_COMPOUND)) { @@ -315,8 +314,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeByte(getOutputFacingItems().getIndex()); buf.writeByte(getOutputFacingFluids().getIndex()); buf.writeBoolean(autoOutputItems); @@ -324,8 +323,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.outputFacingItems = EnumFacing.VALUES[buf.readByte()]; this.outputFacingFluids = EnumFacing.VALUES[buf.readByte()]; this.autoOutputItems = buf.readBoolean(); diff --git a/src/main/java/gregtech/api/metatileentity/SyncedTileEntityBase.java b/src/main/java/gregtech/api/metatileentity/SyncedTileEntityBase.java index a36b9bc0772..b586c9e7639 100644 --- a/src/main/java/gregtech/api/metatileentity/SyncedTileEntityBase.java +++ b/src/main/java/gregtech/api/metatileentity/SyncedTileEntityBase.java @@ -88,9 +88,12 @@ private boolean canNotifyWorld() { } NBTTagCompound updateTag = new NBTTagCompound(); updateTag.setTag("d", this.updates.dumpToNbt()); + addAdditionalData(updateTag); return new SPacketUpdateTileEntity(getPos(), 0, updateTag); } + protected void addAdditionalData(NBTTagCompound updateTag) {} + @Override public final void onDataPacket(@NotNull NetworkManager net, @NotNull SPacketUpdateTileEntity pkt) { NBTTagCompound updateTag = pkt.getNbtCompound(); @@ -114,6 +117,7 @@ public final void onDataPacket(@NotNull NetworkManager net, @NotNull SPacketUpda writeInitialSyncData(new PacketBuffer(backedBuffer)); byte[] updateData = Arrays.copyOfRange(backedBuffer.array(), 0, backedBuffer.writerIndex()); updateTag.setByteArray("d", updateData); + addAdditionalData(updateTag); return updateTag; } diff --git a/src/main/java/gregtech/api/metatileentity/TieredMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/TieredMetaTileEntity.java index 3cf30dd6480..e2b66267fa6 100644 --- a/src/main/java/gregtech/api/metatileentity/TieredMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/TieredMetaTileEntity.java @@ -63,8 +63,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); checkWeatherOrTerrainExplosion(tier, tier * 10, energyContainer); } diff --git a/src/main/java/gregtech/api/metatileentity/interfaces/IGregTechTileEntity.java b/src/main/java/gregtech/api/metatileentity/interfaces/IGregTechTileEntity.java index df7ae0563fe..8e3fb1dc55e 100644 --- a/src/main/java/gregtech/api/metatileentity/interfaces/IGregTechTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/interfaces/IGregTechTileEntity.java @@ -16,6 +16,8 @@ */ public interface IGregTechTileEntity extends IHasWorldObjectAndCoords, INeighborCache, ISyncedTileEntity, IUIHolder { + MetaTileEntity copy(); + MetaTileEntity getMetaTileEntity(); default MetaTileEntity setMetaTileEntity(MetaTileEntity metaTileEntity) { diff --git a/src/main/java/gregtech/api/metatileentity/multiblock/MultiMapMultiblockController.java b/src/main/java/gregtech/api/metatileentity/multiblock/MultiMapMultiblockController.java index ded9c69269c..5034720f9ba 100644 --- a/src/main/java/gregtech/api/metatileentity/multiblock/MultiMapMultiblockController.java +++ b/src/main/java/gregtech/api/metatileentity/multiblock/MultiMapMultiblockController.java @@ -191,27 +191,27 @@ public String recipeMapsToString() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("RecipeMapIndex", recipeMapIndex); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); recipeMapIndex = data.getInteger("RecipeMapIndex"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeByte(recipeMapIndex); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); recipeMapIndex = buf.readByte(); } diff --git a/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockControllerBase.java b/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockControllerBase.java index 27cec75dcfc..64c6ad62c57 100644 --- a/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockControllerBase.java +++ b/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockControllerBase.java @@ -6,7 +6,6 @@ import gregtech.api.capability.IMultiblockController; import gregtech.api.capability.IMultipleRecipeMaps; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.pattern.BlockPattern; import gregtech.api.pattern.BlockWorldState; @@ -102,8 +101,8 @@ public void reinitializeStructurePattern() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (getOffsetTimer() % 20 == 0 || isFirstTick()) { checkStructurePattern(); @@ -217,12 +216,10 @@ public static TraceabilityPredicate metaTileEntities(MetaTileEntity... metaTileE private static Supplier getCandidates(MetaTileEntity... metaTileEntities) { return () -> Arrays.stream(metaTileEntities).filter(Objects::nonNull).map(tile -> { - // TODO - MetaTileEntityHolder holder = new MetaTileEntityHolder(); - holder.setMetaTileEntity(tile); - holder.getMetaTileEntity().onPlacement(); - holder.getMetaTileEntity().setFrontFacing(EnumFacing.SOUTH); - return new BlockInfo(tile.getBlock().getDefaultState(), holder); + tile = tile.copy(); + tile.onPlacement(); + tile.setFrontFacing(EnumFacing.SOUTH); + return new BlockInfo(tile.getBlock().getDefaultState(), tile); }).toArray(BlockInfo[]::new); } @@ -423,8 +420,8 @@ public List getMultiblockParts() { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("UpwardsFacing")) { this.upwardsFacing = EnumFacing.VALUES[data.getByte("UpwardsFacing")]; } @@ -435,24 +432,24 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setByte("UpwardsFacing", (byte) upwardsFacing.getIndex()); data.setBoolean("IsFlipped", isFlipped); return data; } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(structureFormed); buf.writeByte(upwardsFacing.getIndex()); buf.writeBoolean(isFlipped); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.structureFormed = buf.readBoolean(); this.upwardsFacing = EnumFacing.VALUES[buf.readByte()]; this.isFlipped = buf.readBoolean(); diff --git a/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockWithDisplayBase.java b/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockWithDisplayBase.java index 165e2ca69df..9ba2acee310 100644 --- a/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockWithDisplayBase.java +++ b/src/main/java/gregtech/api/metatileentity/multiblock/MultiblockWithDisplayBase.java @@ -198,8 +198,8 @@ protected void formStructure(PatternMatchContext context) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { boolean state = isActive(); if (lastActive != state) { @@ -401,8 +401,8 @@ public final ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSync } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setByte("Maintenance", maintenance_problems); data.setBoolean("InitialMaintenance", initialMaintenanceDone); data.setInteger("ActiveTimer", timeActive); @@ -413,8 +413,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); maintenance_problems = data.getByte("Maintenance"); initialMaintenanceDone = data.getBoolean("InitialMaintenance"); timeActive = data.getInteger("ActiveTimer"); @@ -432,8 +432,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeByte(maintenance_problems); buf.writeInt(timeActive); buf.writeBoolean(voidingFluids); @@ -442,8 +442,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); maintenance_problems = buf.readByte(); timeActive = buf.readInt(); voidingFluids = buf.readBoolean(); diff --git a/src/main/java/gregtech/api/metatileentity/multiblock/RecipeMapMultiblockController.java b/src/main/java/gregtech/api/metatileentity/multiblock/RecipeMapMultiblockController.java index cebe13bc959..8d28eae9541 100644 --- a/src/main/java/gregtech/api/metatileentity/multiblock/RecipeMapMultiblockController.java +++ b/src/main/java/gregtech/api/metatileentity/multiblock/RecipeMapMultiblockController.java @@ -238,27 +238,27 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("isDistinct", isDistinct); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); isDistinct = data.getBoolean("isDistinct"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isDistinct); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); isDistinct = buf.readBoolean(); } diff --git a/src/main/java/gregtech/api/pattern/BlockPattern.java b/src/main/java/gregtech/api/pattern/BlockPattern.java index 8479368a3db..e2cde786d8f 100644 --- a/src/main/java/gregtech/api/pattern/BlockPattern.java +++ b/src/main/java/gregtech/api/pattern/BlockPattern.java @@ -1,12 +1,10 @@ package gregtech.api.pattern; -import gregtech.api.GregTechAPI; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; -import gregtech.api.metatileentity.registry.MTERegistry; import gregtech.api.util.BlockInfo; +import gregtech.api.util.GTUtility; import gregtech.api.util.RelativeDirection; import net.minecraft.block.state.IBlockState; @@ -171,16 +169,11 @@ private PatternMatchContext checkPatternAt(World world, BlockPos centerPos, Enum worldState.update(world, pos, matchContext, globalCount, layerCount, predicate); TileEntity tileEntity = worldState.getTileEntity(); if (predicate != TraceabilityPredicate.ANY) { - if (tileEntity instanceof IGregTechTileEntity) { - if (((IGregTechTileEntity) tileEntity).isValid()) { - cache.put(pos.toLong(), - new BlockInfo(worldState.getBlockState(), tileEntity, predicate)); - } else { - cache.put(pos.toLong(), new BlockInfo(worldState.getBlockState(), null, predicate)); - } - } else { + if (tileEntity != null && !tileEntity.isInvalid()) { cache.put(pos.toLong(), new BlockInfo(worldState.getBlockState(), tileEntity, predicate)); + } else { + cache.put(pos.toLong(), new BlockInfo(worldState.getBlockState(), null, predicate)); } } if (!predicate.test(worldState)) { @@ -383,19 +376,15 @@ public void autoBuild(EntityPlayer player, MultiblockControllerBase controllerBa .getStateFromMeta(itemBlock.getMetadata(found.getMetadata())); blocks.put(pos, state); world.setBlockState(pos, state); - TileEntity holder = world.getTileEntity(pos); - if (holder instanceof IGregTechTileEntity igtte) { - MTERegistry registry = GregTechAPI.mteManager - .getRegistry(found.getItem().getRegistryName().getNamespace()); - MetaTileEntity sampleMetaTileEntity = registry.getObjectById(found.getItemDamage()); - if (sampleMetaTileEntity != null) { - MetaTileEntity metaTileEntity = igtte.setMetaTileEntity(sampleMetaTileEntity); - metaTileEntity.onPlacement(player); - blocks.put(pos, metaTileEntity); - if (found.getTagCompound() != null) { - metaTileEntity.initFromItemStackData(found.getTagCompound()); - } + MetaTileEntity sampleMetaTileEntity = GTUtility.getMetaTileEntity(found); + if (sampleMetaTileEntity != null) { + MetaTileEntity metaTileEntity = sampleMetaTileEntity.copy(); + metaTileEntity.onPlacement(player); + blocks.put(pos, metaTileEntity); + if (found.getTagCompound() != null) { + metaTileEntity.initFromItemStackData(found.getTagCompound()); } + world.setTileEntity(pos, metaTileEntity); } } } @@ -576,11 +565,10 @@ public BlockInfo[][][] getPreview(int[] repetition) { BlockPos pos = RelativeDirection.setActualRelativeOffset(z, y, x, EnumFacing.NORTH, EnumFacing.UP, false, structureDir); // TODO - if (info.getTileEntity() instanceof MetaTileEntityHolder) { - MetaTileEntityHolder holder = new MetaTileEntityHolder(); - holder.setMetaTileEntity(((MetaTileEntityHolder) info.getTileEntity()).getMetaTileEntity()); - holder.getMetaTileEntity().onPlacement(); - info = new BlockInfo(holder.getMetaTileEntity().getBlock().getDefaultState(), holder); + if (info.getTileEntity() instanceof IGregTechTileEntity gregTechTile) { + MetaTileEntity mte = gregTechTile.copy(); + mte.onPlacement(); + info = new BlockInfo(mte.getBlock().getDefaultState(), mte); } blocks.put(pos, info); minX = Math.min(pos.getX(), minX); @@ -600,8 +588,8 @@ public BlockInfo[][][] getPreview(int[] repetition) { int finalMinY = minY; int finalMinZ = minZ; blocks.forEach((pos, info) -> { - if (info.getTileEntity() instanceof MetaTileEntityHolder) { - MetaTileEntity metaTileEntity = ((MetaTileEntityHolder) info.getTileEntity()).getMetaTileEntity(); + if (info.getTileEntity() instanceof IGregTechTileEntity gregTechTile) { + MetaTileEntity metaTileEntity = gregTechTile.getMetaTileEntity(); boolean find = false; for (EnumFacing enumFacing : FACINGS) { if (metaTileEntity.isValidFrontFacing(enumFacing)) { diff --git a/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java b/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java index f82b3dc8319..08824b171f8 100644 --- a/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java +++ b/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java @@ -1,7 +1,7 @@ package gregtech.api.pattern; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.BlockInfo; import gregtech.api.util.RelativeDirection; @@ -99,11 +99,10 @@ public Builder where(char symbol, IBlockState blockState, TileEntity tileEntity) } public Builder where(char symbol, MetaTileEntity tileEntity, EnumFacing frontSide) { - MetaTileEntityHolder holder = new MetaTileEntityHolder(); - holder.setMetaTileEntity(tileEntity); - holder.getMetaTileEntity().onPlacement(); - holder.getMetaTileEntity().setFrontFacing(frontSide); - return where(symbol, new BlockInfo(tileEntity.getBlock().getDefaultState(), holder)); + tileEntity = tileEntity.copy(); + tileEntity.onPlacement(); + tileEntity.setFrontFacing(frontSide); + return where(symbol, new BlockInfo(tileEntity.getBlock().getDefaultState(), tileEntity)); } /** @@ -138,13 +137,11 @@ private BlockInfo[][][] bakeArray() { for (int x = 0; x < maxX; x++) { BlockInfo info = symbolMap.getOrDefault(columnEntry.charAt(x), BlockInfo.EMPTY); TileEntity tileEntity = info.getTileEntity(); - if (tileEntity instanceof MetaTileEntityHolder holder) { - final MetaTileEntity mte = holder.getMetaTileEntity(); - holder = new MetaTileEntityHolder(); - holder.setMetaTileEntity(mte); - holder.getMetaTileEntity().onPlacement(); - holder.getMetaTileEntity().setFrontFacing(mte.getFrontFacing()); - info = new BlockInfo(info.getBlockState(), holder); + if (tileEntity instanceof IGregTechTileEntity holder) { + final MetaTileEntity mte = holder.copy(); + mte.onPlacement(); + mte.setFrontFacing(holder.getMetaTileEntity().getFrontFacing()); + info = new BlockInfo(info.getBlockState(), mte); } else if (tileEntity != null) { info = new BlockInfo(info.getBlockState(), tileEntity); } diff --git a/src/main/java/gregtech/api/util/BlockInfo.java b/src/main/java/gregtech/api/util/BlockInfo.java index 2f2340db46d..28e73b9f82d 100644 --- a/src/main/java/gregtech/api/util/BlockInfo.java +++ b/src/main/java/gregtech/api/util/BlockInfo.java @@ -1,11 +1,12 @@ package gregtech.api.util; +import gregtech.api.util.world.DummyWorld; + import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; import com.google.common.base.Preconditions; @@ -54,10 +55,15 @@ public Object getInfo() { return info; } - public void apply(World world, BlockPos pos) { - world.setBlockState(pos, blockState); - if (tileEntity != null) { - world.setTileEntity(pos, tileEntity); - } + public void apply(DummyWorld world, BlockPos pos) { + world.forcePlace(pos, tileEntity, blockState); + } + + @Override + public String toString() { + return "BlockInfo{" + + "tileEntity=" + (tileEntity == null ? "null" : tileEntity) + + ", blockState=" + blockState + + '}'; } } diff --git a/src/main/java/gregtech/api/util/GTUtility.java b/src/main/java/gregtech/api/util/GTUtility.java index 597f8ef6095..1af5b1ac9bd 100644 --- a/src/main/java/gregtech/api/util/GTUtility.java +++ b/src/main/java/gregtech/api/util/GTUtility.java @@ -43,6 +43,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; +import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fluids.Fluid; @@ -769,6 +770,30 @@ public static MetaTileEntity getMetaTileEntity(ItemStack stack) { return registry.getObjectById(stack.getItemDamage()); } + public static MetaTileEntity getMetaTileEntity(NBTTagCompound tagCompound) { + if (tagCompound.hasKey("MetaId")) { + return getMetaTileEntity(tagCompound.getString("MetaId")); + } + return null; + } + + public static MetaTileEntity getMetaTileEntity(String resloc) { + return getMetaTileEntity(new ResourceLocation(resloc)); + } + + public static MetaTileEntity getMetaTileEntity(ResourceLocation location) { + return getMetaTileEntity(location.getNamespace(), location); + } + + public static MetaTileEntity getMetaTileEntity(String modid, ResourceLocation location) { + return GregTechAPI.mteManager.getRegistry(modid).getObject(location); + } + + public static boolean hasTileEntity(World world, BlockPos pos) { + // it is technically possible for the world to have a TE, but not the chunk + return world.getChunk(pos).getTileEntity(pos, Chunk.EnumCreateEntityType.CHECK) != null; + } + /** * @param world the world containing the block * @param blockPos the position of the block to check diff --git a/src/main/java/gregtech/api/util/world/DummyWorld.java b/src/main/java/gregtech/api/util/world/DummyWorld.java index 7209f5918bf..e4079842cf8 100644 --- a/src/main/java/gregtech/api/util/world/DummyWorld.java +++ b/src/main/java/gregtech/api/util/world/DummyWorld.java @@ -5,6 +5,7 @@ import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.profiler.Profiler; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.*; @@ -16,6 +17,8 @@ import net.minecraftforge.fml.relauncher.FMLLaunchHandler; import dev.redstudio.alfheim.lighting.LightingEngine; +import it.unimi.dsi.fastutil.objects.Object2ObjectMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -26,6 +29,8 @@ public class DummyWorld extends World { public static final DummyWorld INSTANCE = new DummyWorld(); + private final Object2ObjectMap tileEntities = new Object2ObjectOpenHashMap<>(); + public DummyWorld() { super(new DummySaveHandler(), new WorldInfo(DEFAULT_SETTINGS, "DummyServer"), new WorldProviderSurface(), new Profiler(), false); @@ -49,6 +54,26 @@ public DummyWorld() { } } + public void forcePlace(BlockPos pos, TileEntity entity, IBlockState state) { + if (isOutsideBuildHeight(pos)) return; + setBlockState(pos, state); + if (entity != null) { + setTileEntity(pos, entity); + tileEntities.put(pos.toImmutable(), entity); + } + } + + @Override + public TileEntity getTileEntity(BlockPos pos) { + TileEntity result; + if (tileEntities.containsKey(pos)) { + result = tileEntities.get(pos); + } else { + result = super.getTileEntity(pos); + } + return result; + } + @Override public void notifyNeighborsRespectDebug(@NotNull BlockPos pos, @NotNull Block blockType, boolean p_175722_3_) { // NOOP - do not trigger forge events diff --git a/src/main/java/gregtech/client/event/ClientEventHandler.java b/src/main/java/gregtech/client/event/ClientEventHandler.java index 57c79a3afb7..8e48c2dcb3b 100644 --- a/src/main/java/gregtech/client/event/ClientEventHandler.java +++ b/src/main/java/gregtech/client/event/ClientEventHandler.java @@ -5,7 +5,6 @@ import gregtech.api.items.metaitem.MetaItem; import gregtech.api.items.metaitem.stats.IItemBehaviour; import gregtech.api.items.metaitem.stats.IItemHUDProvider; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.util.CapesRegistry; import gregtech.client.particle.GTParticleManager; import gregtech.client.renderer.handler.BlockPosHighlightRenderer; @@ -53,10 +52,8 @@ public static void onDrawBlockHighlight(DrawBlockHighlightEvent event) { return; } TileEntity tileEntity = event.getPlayer().world.getTileEntity(event.getTarget().getBlockPos()); - if (tileEntity instanceof MetaTileEntityHolder) { - if (((MetaTileEntityHolder) tileEntity).getMetaTileEntity() instanceof MetaTileEntityMonitorScreen) { - event.setCanceled(true); - } + if (tileEntity instanceof MetaTileEntityMonitorScreen) { + event.setCanceled(true); } } diff --git a/src/main/java/gregtech/client/particle/GTNameTagParticle.java b/src/main/java/gregtech/client/particle/GTNameTagParticle.java index 5f219f5d5dc..5ff57558cc2 100644 --- a/src/main/java/gregtech/client/particle/GTNameTagParticle.java +++ b/src/main/java/gregtech/client/particle/GTNameTagParticle.java @@ -1,6 +1,6 @@ package gregtech.client.particle; -import gregtech.api.metatileentity.MetaTileEntityHolder; +import gregtech.api.metatileentity.GTBaseTileEntity; import gregtech.client.utils.EffectRenderContext; import net.minecraft.client.Minecraft; @@ -16,9 +16,9 @@ public class GTNameTagParticle extends GTParticle { - private final MetaTileEntityHolder metaTileEntityHolder; + private final GTBaseTileEntity metaTileEntityHolder; - public GTNameTagParticle(@NotNull MetaTileEntityHolder metaTileEntityHolder, double posX, double posY, + public GTNameTagParticle(@NotNull GTBaseTileEntity metaTileEntityHolder, double posX, double posY, double posZ) { super(posX, posY, posZ); this.metaTileEntityHolder = Objects.requireNonNull(metaTileEntityHolder); diff --git a/src/main/java/gregtech/client/renderer/handler/MetaTileEntityTESR.java b/src/main/java/gregtech/client/renderer/handler/MetaTileEntityTESR.java index 04f29382669..28292abeb9f 100644 --- a/src/main/java/gregtech/client/renderer/handler/MetaTileEntityTESR.java +++ b/src/main/java/gregtech/client/renderer/handler/MetaTileEntityTESR.java @@ -1,9 +1,9 @@ package gregtech.client.renderer.handler; import gregtech.api.cover.Cover; +import gregtech.api.metatileentity.GTBaseTileEntity; import gregtech.api.metatileentity.IFastRenderMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BufferBuilder; @@ -23,10 +23,10 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) -public class MetaTileEntityTESR extends TileEntitySpecialRenderer { +public class MetaTileEntityTESR extends TileEntitySpecialRenderer { @Override - public void render(@NotNull MetaTileEntityHolder te, double x, double y, double z, float partialTicks, + public void render(@NotNull GTBaseTileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { Tessellator tessellator = Tessellator.getInstance(); @@ -86,7 +86,7 @@ public void render(@NotNull MetaTileEntityHolder te, double x, double y, double } @Override - public void renderTileEntityFast(MetaTileEntityHolder te, double x, double y, double z, float partialTicks, + public void renderTileEntityFast(GTBaseTileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha, @NotNull BufferBuilder buffer) { MetaTileEntity metaTileEntity = te.getMetaTileEntity(); if (metaTileEntity instanceof IFastRenderMetaTileEntity) { @@ -114,7 +114,7 @@ public void renderTileEntityFast(MetaTileEntityHolder te, double x, double y, do } @Override - public boolean isGlobalRenderer(@NotNull MetaTileEntityHolder te) { + public boolean isGlobalRenderer(@NotNull GTBaseTileEntity te) { if (te.getMetaTileEntity() instanceof IFastRenderMetaTileEntity) { return ((IFastRenderMetaTileEntity) te.getMetaTileEntity()).isGlobalRenderer(); } diff --git a/src/main/java/gregtech/client/utils/ClientHandlerHooks.java b/src/main/java/gregtech/client/utils/ClientHandlerHooks.java new file mode 100644 index 00000000000..d3e099e8952 --- /dev/null +++ b/src/main/java/gregtech/client/utils/ClientHandlerHooks.java @@ -0,0 +1,59 @@ +package gregtech.client.utils; + +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.util.GTUtility; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.List; + +public class ClientHandlerHooks { + + /** + * Creates a MetaTileEntity from each tag and sets them in the world + * + * @param world typically client world + * @param tagCompounds list of TileEntity tag data + */ + public static void handleTags(World world, List tagCompounds) { + for (NBTTagCompound tagCompound : tagCompounds) { + handleTag(world, tagCompound); + } + } + + /** + * Creates a MetaTileEntity from the tag and sets it in the world + * + * @param world typically client world + * @param tagCompound TileEntity tag data + */ + public static void handleTag(World world, NBTTagCompound tagCompound) { + MetaTileEntity mte = GTUtility.getMetaTileEntity(tagCompound); + if (mte != null) { + BlockPos pos = new BlockPos( + tagCompound.getInteger("x"), + tagCompound.getInteger("y"), + tagCompound.getInteger("z")); + placeTile(world, mte, pos); + } + } + + /** + * Sets a copy of the MetaTileEntity to the world IF a TileEntity doesn't already exist at the position + * + * @param world client world + * @param mte MetaTileEntity to set in world + * @param pos Position to place the MetaTileEntity + */ + private static void placeTile(World world, MetaTileEntity mte, BlockPos pos) { + // set te in world directly + // check if world contains a TE at this pos? + // is null checking good enough? + if (!GTUtility.hasTileEntity(world, pos)) { + world.setBlockState(pos, mte.getBlock().getDefaultState()); + world.setTileEntity(pos, mte.copy()); + } + } +} diff --git a/src/main/java/gregtech/common/EventHandlers.java b/src/main/java/gregtech/common/EventHandlers.java index 33ffd17f7e6..d932627a44c 100644 --- a/src/main/java/gregtech/common/EventHandlers.java +++ b/src/main/java/gregtech/common/EventHandlers.java @@ -121,10 +121,8 @@ public static void onPlayerInteractionRightClickBlock(PlayerInteractEvent.RightC public static void onPlayerInteractionLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { if (event.getEntityPlayer().isCreative()) { TileEntity holder = event.getWorld().getTileEntity(event.getPos()); - if (holder instanceof IGregTechTileEntity && - ((IGregTechTileEntity) holder).getMetaTileEntity() instanceof MetaTileEntityCentralMonitor) { - ((MetaTileEntityCentralMonitor) ((IGregTechTileEntity) holder).getMetaTileEntity()) - .invalidateStructure(); + if (holder instanceof MetaTileEntityCentralMonitor monitor) { + monitor.invalidateStructure(); } } } diff --git a/src/main/java/gregtech/common/ToolEventHandlers.java b/src/main/java/gregtech/common/ToolEventHandlers.java index e503b539547..a3b7c953b80 100644 --- a/src/main/java/gregtech/common/ToolEventHandlers.java +++ b/src/main/java/gregtech/common/ToolEventHandlers.java @@ -11,7 +11,6 @@ import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.items.toolitem.ToolHelper; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.pipenet.block.BlockPipe; @@ -389,8 +388,8 @@ private static boolean renderGridOverlays(@NotNull EntityPlayer player, BlockPos TileEntityPipeBase tepb = (TileEntityPipeBase) tile; drawGridOverlays(facing, box, face -> tepb.isConnected(face) || tepb.getCoverableImplementation().getCoverAtSide(face) != null); - } else if (tile instanceof MetaTileEntityHolder) { - MetaTileEntity mte = ((MetaTileEntityHolder) tile).getMetaTileEntity(); + } else if (tile instanceof IGregTechTileEntity gregTechTile) { + MetaTileEntity mte = gregTechTile.getMetaTileEntity(); drawGridOverlays(facing, box, mte::isSideUsed); if (mte instanceof MultiblockControllerBase multi && multi.allowsExtendedFacing() && ToolHelper.isTool(player.getHeldItemMainhand(), ToolClasses.WRENCH)) { diff --git a/src/main/java/gregtech/common/blocks/MetaBlocks.java b/src/main/java/gregtech/common/blocks/MetaBlocks.java index 56c10a73c3f..3ae163aab49 100644 --- a/src/main/java/gregtech/common/blocks/MetaBlocks.java +++ b/src/main/java/gregtech/common/blocks/MetaBlocks.java @@ -4,7 +4,7 @@ import gregtech.api.block.coil.CoilRegistry; import gregtech.api.block.coil.CustomCoilBlock; import gregtech.api.block.machines.BlockMachine; -import gregtech.api.metatileentity.MetaTileEntityHolder; +import gregtech.api.metatileentity.GTBaseTileEntity; import gregtech.api.metatileentity.registry.MTERegistry; import gregtech.api.pipenet.longdist.BlockLongDistancePipe; import gregtech.api.unification.OreDictUnifier; @@ -429,7 +429,7 @@ private static void createSurfaceRockBlock(String modid, Material[] materials, i } public static void registerTileEntity() { - GameRegistry.registerTileEntity(MetaTileEntityHolder.class, gregtechId("machine")); + GameRegistry.registerTileEntity(GTBaseTileEntity.class, gregtechId("machine")); GameRegistry.registerTileEntity(TileEntityCable.class, gregtechId("cable")); GameRegistry.registerTileEntity(TileEntityCableTickable.class, gregtechId("cable_tickable")); GameRegistry.registerTileEntity(TileEntityFluidPipe.class, gregtechId("fluid_pipe")); @@ -602,7 +602,7 @@ protected ModelResourceLocation getModelResourceLocation(@NotNull IBlockState st MinecraftForge.EVENT_BUS.register(modelHandler); FLUID_BLOCKS.forEach(modelHandler::addFluidBlock); - ClientRegistry.bindTileEntitySpecialRenderer(MetaTileEntityHolder.class, new MetaTileEntityTESR()); + ClientRegistry.bindTileEntitySpecialRenderer(GTBaseTileEntity.class, new MetaTileEntityTESR()); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/gregtech/common/items/behaviors/TricorderBehavior.java b/src/main/java/gregtech/common/items/behaviors/TricorderBehavior.java index 0f8abef5cbe..ce2d21912ca 100644 --- a/src/main/java/gregtech/common/items/behaviors/TricorderBehavior.java +++ b/src/main/java/gregtech/common/items/behaviors/TricorderBehavior.java @@ -10,9 +10,9 @@ import gregtech.api.capability.IWorkable; import gregtech.api.capability.impl.FluidTankList; import gregtech.api.items.metaitem.stats.IItemBehaviour; +import gregtech.api.metatileentity.GTBaseTileEntity; import gregtech.api.metatileentity.IDataInfoProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.pipenet.tile.IPipeTile; import gregtech.api.util.GTUtility; @@ -390,8 +390,8 @@ else if (metaTileEntity instanceof IDataInfoProvider) // } // debug TODO - if (tileEntity instanceof MetaTileEntityHolder) { - list.addAll(((MetaTileEntityHolder) tileEntity).getDebugInfo(player, debugLevel)); + if (tileEntity instanceof GTBaseTileEntity) { + list.addAll(((GTBaseTileEntity) tileEntity).getDebugInfo(player, debugLevel)); } this.energyCost = energyCost; diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java index 1f054c5abb5..747dfaf3930 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java @@ -97,8 +97,8 @@ public MetaTileEntityClipboard(ResourceLocation metaTileEntityId) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (guiContainerCache == null) { createFakeGui(); scheduleRenderUpdate(); @@ -143,7 +143,7 @@ public boolean isOpaqueCube() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityClipboard(metaTileEntityId); } @@ -398,8 +398,8 @@ public boolean isValidFrontFacing(EnumFacing facing) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); if (this.getClipboard() != null && this.getClipboard().getTagCompound() != null) data.setTag("clipboardNBT", this.getClipboard().getTagCompound()); else @@ -408,8 +408,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); NBTBase clipboardNBT = data.getTag("clipboardNBT"); if (clipboardNBT != NO_CLIPBOARD_SIG && clipboardNBT instanceof NBTTagCompound) { ItemStack clipboard = this.getClipboard(); @@ -425,8 +425,8 @@ public void setClipboardNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); if (this.getClipboard() != null && this.getClipboard().getTagCompound() != null) buf.writeCompoundTag(this.getClipboard().getTagCompound()); else { @@ -435,8 +435,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); try { NBTTagCompound clipboardNBT = buf.readCompoundTag(); if (clipboardNBT != null && !clipboardNBT.equals(new NBTTagCompound())) { diff --git a/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java b/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java index 0f4f7defa7b..ba31e9efac8 100644 --- a/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java +++ b/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java @@ -5,7 +5,6 @@ import gregtech.api.capability.GregtechCapabilities; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; import gregtech.client.utils.PipelineUtil; @@ -108,7 +107,7 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityConverter(metaTileEntityId, getTier(), amps); } @@ -120,15 +119,15 @@ public void getSubItems(CreativeTabs creativeTab, NonNullList subItem } @Override - public void writeInitialSyncData(PacketBuffer buf) { + public void writeInitialSyncDataMTE(PacketBuffer buf) { buf.writeBoolean(converterTrait.isFeToEu()); - super.writeInitialSyncData(buf); + super.writeInitialSyncDataMTE(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { + public void receiveInitialSyncDataMTE(PacketBuffer buf) { converterTrait.setFeToEu(buf.readBoolean()); - super.receiveInitialSyncData(buf); + super.receiveInitialSyncDataMTE(buf); } @Override diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityAlarm.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityAlarm.java index 8e0518fb935..a9f6d355eaf 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityAlarm.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityAlarm.java @@ -10,7 +10,6 @@ import gregtech.api.gui.widgets.TextFieldWidget2; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.client.renderer.texture.Textures; import gregtech.common.ConfigHolder; import gregtech.common.gui.widget.terminal.gui.widgets.SelectorWidget; @@ -49,7 +48,7 @@ public MetaTileEntityAlarm(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityAlarm(metaTileEntityId); } @@ -128,8 +127,8 @@ public boolean isActive() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!this.getWorld().isRemote) { if (this.isActive != this.isActive()) { this.writeCustomData(GregtechDataCodes.UPDATE_ACTIVE, (writer) -> writer.writeBoolean(this.isActive())); @@ -159,35 +158,35 @@ public float getVolume() { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isActive = buf.readBoolean(); this.selectedSound = SoundEvent.REGISTRY.getObject(buf.readResourceLocation()); this.radius = buf.readInt(); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.isActive); buf.writeResourceLocation(getResourceLocationOfSound(this.selectedSound)); buf.writeInt(this.radius); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setBoolean("isActive", this.isActive); data.setString("selectedSound", getNameOfSound(this.selectedSound)); data.setInteger("radius", this.radius); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { this.isActive = data.getBoolean("isActive"); this.selectedSound = SoundEvent.REGISTRY.getObject(new ResourceLocation(data.getString("selectedSound"))); this.radius = data.getInteger("radius"); - super.readFromNBT(data); + super.readMTETag(data); } public String getNameOfSound(SoundEvent sound) { diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBatteryBuffer.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBatteryBuffer.java index ca26c1cba5c..4665019dd43 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBatteryBuffer.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBatteryBuffer.java @@ -7,7 +7,6 @@ import gregtech.api.capability.IElectricItem; import gregtech.api.capability.impl.EnergyContainerBatteryBuffer; import gregtech.api.metatileentity.*; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuis; import gregtech.api.util.TextFormattingUtil; @@ -63,7 +62,7 @@ public MetaTileEntityBatteryBuffer(ResourceLocation metaTileEntityId, int tier, } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityBatteryBuffer(metaTileEntityId, getTier(), inventorySize); } @@ -202,15 +201,15 @@ public void addToolUsages(ItemStack stack, @Nullable World world, List t } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - NBTTagCompound tagCompound = super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + NBTTagCompound tagCompound = super.writeMTETag(data); tagCompound.setBoolean("AllowEnergyOutput", allowEnergyOutput); return tagCompound; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("AllowEnergyOutput", NBT.TAG_ANY_NUMERIC)) { this.allowEnergyOutput = data.getBoolean("AllowEnergyOutput"); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBlockBreaker.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBlockBreaker.java index 65e4e3a76fb..707f847d72a 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBlockBreaker.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityBlockBreaker.java @@ -4,7 +4,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuis; import gregtech.api.util.BlockUtility; import gregtech.api.util.GTTransferUtils; @@ -98,7 +97,7 @@ public MetaTileEntityBlockBreaker(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityBlockBreaker(metaTileEntityId, getTier()); } @@ -112,8 +111,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); World world = getWorld(); if (!world.isRemote) { @@ -218,8 +217,8 @@ public boolean onWrenchClick(EntityPlayer playerIn, EnumHand hand, EnumFacing fa } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("OutputFacing", getOutputFacing().getIndex()); data.setInteger("BlockBreakProgress", breakProgressTicksLeft); data.setFloat("BlockHardness", currentBlockHardness); @@ -227,22 +226,22 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.outputFacing = EnumFacing.VALUES[data.getInteger("OutputFacing")]; this.breakProgressTicksLeft = data.getInteger("BlockBreakProgress"); this.currentBlockHardness = data.getFloat("BlockHardness"); } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeByte(getOutputFacing().getIndex()); } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.outputFacing = EnumFacing.VALUES[buf.readByte()]; } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityCharger.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityCharger.java index b5fef8cc815..8e424a44621 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityCharger.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityCharger.java @@ -10,7 +10,6 @@ import gregtech.api.gui.widgets.SlotWidget; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.common.ConfigHolder; import net.minecraft.client.resources.I18n; @@ -39,7 +38,7 @@ public MetaTileEntityCharger(ResourceLocation metaTileEntityId, int tier, int in } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCharger(metaTileEntityId, getTier(), inventorySize); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java index de11fab72e4..8ca988611a8 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java @@ -8,7 +8,6 @@ import gregtech.api.capability.impl.EnergyContainerHandler; import gregtech.api.metatileentity.MTETrait; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.IPassthroughHatch; @@ -65,21 +64,21 @@ public MetaTileEntityDiode(ResourceLocation metaTileEntityId, int tier, int maxA } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityDiode(metaTileEntityId, getTier(), getMaxAmperage()); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger(AMP_NBT_KEY, amps); data.setBoolean("IsWorkingEnabled", isWorkingEnabled); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.amps = data.getInteger(AMP_NBT_KEY); if (data.hasKey("IsWorkingEnabled")) { this.isWorkingEnabled = data.getBoolean("IsWorkingEnabled"); @@ -88,15 +87,15 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeInt(amps); buf.writeBoolean(isWorkingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.amps = buf.readInt(); this.isWorkingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java index 44c55e814cf..570cadf2dbb 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java @@ -4,7 +4,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuis; import gregtech.api.unification.OreDictUnifier; @@ -61,7 +60,7 @@ public MetaTileEntityFisher(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityFisher(metaTileEntityId, getTier()); } @@ -104,8 +103,8 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); ItemStack baitStack = importItems.getStackInSlot(0); if (!getWorld().isRemote && energyContainer.getEnergyStored() >= energyAmountPerFish && getOffsetTimer() % fishingTicks == 0L && !baitStack.isEmpty()) { diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityGasCollector.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityGasCollector.java index 8300d2b5fc9..9d773df479a 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityGasCollector.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityGasCollector.java @@ -3,7 +3,6 @@ import gregtech.api.capability.impl.RecipeLogicEnergy; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.RecipeMaps; import gregtech.client.renderer.ICubeRenderer; @@ -22,7 +21,7 @@ public MetaTileEntityGasCollector(ResourceLocation metaTileEntityId, RecipeMap } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (isFirstTick() && Mods.AppliedEnergistics2.isModLoaded()) { if (getProxy() != null) getProxy().onReady(); } @@ -99,8 +97,8 @@ public AECableType getCableConnectionType(@NotNull AEPartLocation part) { @Override @Optional.Method(modid = Mods.Names.APPLIED_ENERGISTICS2) public AENetworkProxy getProxy() { - if (gridProxy == null && getHolder() instanceof MetaTileEntityHolder) { - gridProxy = new AENetworkProxy((MetaTileEntityHolder) getHolder(), "proxy", getStackForm(), true); + if (gridProxy == null) { + gridProxy = new AENetworkProxy(this, "proxy", getStackForm(), true); } return gridProxy; } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityItemCollector.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityItemCollector.java index f28489a4add..9360a6bcfab 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityItemCollector.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityItemCollector.java @@ -11,7 +11,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTTransferUtils; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; @@ -66,7 +65,7 @@ public MetaTileEntityItemCollector(ResourceLocation metaTileEntityId, int tier, } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityItemCollector(metaTileEntityId, getTier(), maxItemSuckingRange); } @@ -84,14 +83,14 @@ protected int getEnergyConsumedPerTick() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isWorking); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isWorking = buf.readBoolean(); } @@ -110,8 +109,8 @@ protected boolean canMachineConnectRedstone(EnumFacing side) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) { return; @@ -207,16 +206,16 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("CollectRange", itemSuckingRange); data.setTag("Filter", itemFilter.serializeNBT()); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.itemSuckingRange = data.getInteger("CollectRange"); this.itemFilter.deserializeNBT(data.getCompoundTag("Filter")); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMagicEnergyAbsorber.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMagicEnergyAbsorber.java index 1f8de9fa85b..132fbdb740e 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMagicEnergyAbsorber.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMagicEnergyAbsorber.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.ICubeRenderer; import gregtech.client.renderer.texture.Textures; @@ -58,7 +57,7 @@ public MetaTileEntityMagicEnergyAbsorber(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMagicEnergyAbsorber(metaTileEntityId); } @@ -82,8 +81,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) return; if (!(getWorld().provider instanceof WorldProviderEnd)) { @@ -134,14 +133,14 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isActive); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isActive = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java index 53656efac23..5e332c69d5a 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java @@ -11,7 +11,6 @@ import gregtech.api.metatileentity.IDataInfoProvider; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuis; import gregtech.api.mui.TextStandards; @@ -74,7 +73,7 @@ public MetaTileEntityMiner(ResourceLocation metaTileEntityId, int tier, int spee } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMiner(metaTileEntityId, getTier(), this.minerLogic.getSpeed(), this.minerLogic.getMaximumRadius(), this.minerLogic.getFortune()); } @@ -220,8 +219,8 @@ public boolean drainEnergy(boolean simulate) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); this.minerLogic.performMining(); if (!getWorld().isRemote) { ((EnergyContainerHandler) this.energyContainer).dischargeOrRechargeEnergyContainers(chargerInventory, 0); @@ -262,28 +261,28 @@ else if (playerIn.isSneaking()) } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("ChargerInventory", chargerInventory.serializeNBT()); return this.minerLogic.writeToNBT(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.chargerInventory.deserializeNBT(data.getCompoundTag("ChargerInventory")); this.minerLogic.readFromNBT(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); this.minerLogic.writeInitialSyncData(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.minerLogic.receiveInitialSyncData(buf); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityPump.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityPump.java index d268521db3c..30ceaafabc2 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityPump.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityPump.java @@ -8,7 +8,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -74,7 +73,7 @@ public MetaTileEntityPump(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPump(metaTileEntityId, getTier()); } @@ -97,15 +96,15 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeVarInt(pumpHeadY); buf.writeBoolean(locked); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.pumpHeadY = buf.readVarInt(); this.locked = buf.readBoolean(); } @@ -354,8 +353,8 @@ private Consumer> getFluidAmountText(TankWidget tankWidget) } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) { return; } @@ -377,8 +376,8 @@ private int getPumpingCycleLength() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("PumpHeadDepth", pumpHeadY); data.setBoolean("IsLocked", locked); if (locked && lockedFluid != null) { @@ -388,8 +387,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.pumpHeadY = data.getInteger("PumpHeadDepth"); this.locked = data.getBoolean("IsLocked"); this.lockedFluid = this.locked ? FluidStack.loadFluidStackFromNBT(data.getCompoundTag("LockedFluid")) : null; diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityRockBreaker.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityRockBreaker.java index db5f83778f6..0cd145ac805 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityRockBreaker.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityRockBreaker.java @@ -4,7 +4,6 @@ import gregtech.api.capability.impl.RecipeLogicEnergy; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.RecipeMaps; import gregtech.client.renderer.ICubeRenderer; @@ -28,7 +27,7 @@ public MetaTileEntityRockBreaker(ResourceLocation metaTileEntityId, RecipeMap } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityRockBreaker(metaTileEntityId, RecipeMaps.ROCK_BREAKER_RECIPES, Textures.ROCK_BREAKER_OVERLAY, getTier()); } @@ -81,15 +80,15 @@ public void addNotifiedInput(Object input) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("hasValidFluids", hasValidFluids); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("hasValidFluids")) { this.hasValidFluids = data.getBoolean("hasValidFluids"); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleCombustion.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleCombustion.java index b18412bbabd..48ab2016a67 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleCombustion.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleCombustion.java @@ -2,7 +2,6 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SimpleGeneratorMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.ICubeRenderer; @@ -27,7 +26,7 @@ public MetaTileEntitySingleCombustion(ResourceLocation metaTileEntityId, RecipeM } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySingleCombustion(metaTileEntityId, recipeMap, renderer, getTier(), getTankScalingFunction()); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleTurbine.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleTurbine.java index c594e76e88e..6993d9fde58 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleTurbine.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntitySingleTurbine.java @@ -2,7 +2,6 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SimpleGeneratorMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.client.renderer.ICubeRenderer; @@ -24,7 +23,7 @@ public MetaTileEntitySingleTurbine(ResourceLocation metaTileEntityId, RecipeMap< } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySingleTurbine(metaTileEntityId, recipeMap, renderer, getTier(), getTankScalingFunction()); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityTransformer.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityTransformer.java index db8b2fc2ff9..f8098e1799c 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityTransformer.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityTransformer.java @@ -4,7 +4,6 @@ import gregtech.api.capability.impl.EnergyContainerHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.TieredMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; import gregtech.client.utils.PipelineUtil; @@ -51,7 +50,7 @@ public MetaTileEntityTransformer(ResourceLocation metaTileEntityId, int tier, in } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityTransformer(metaTileEntityId, getTier(), highAmperages); } @@ -64,8 +63,8 @@ public int getCurrentHighAmperage() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("Inverted", isTransformUp); if (hasMultipleAmperages()) { data.setInteger("ampIndex", ampIndex); @@ -74,8 +73,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.isTransformUp = data.getBoolean("Inverted"); if (hasMultipleAmperages()) { this.ampIndex = data.getInteger("ampIndex"); @@ -84,8 +83,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isTransformUp); if (hasMultipleAmperages()) { buf.writeInt(ampIndex); @@ -93,8 +92,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isTransformUp = buf.readBoolean(); if (hasMultipleAmperages()) { this.ampIndex = buf.readInt(); diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityWorldAccelerator.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityWorldAccelerator.java index 30928bf7a92..4ffa123bc0c 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityWorldAccelerator.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityWorldAccelerator.java @@ -70,7 +70,7 @@ public MetaTileEntityWorldAccelerator(ResourceLocation metaTileEntityId, int tie } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityWorldAccelerator(metaTileEntityId, getTier()); } @@ -126,8 +126,8 @@ public boolean allowTickAcceleration() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (isPaused && isActive) { setActive(false); @@ -261,8 +261,8 @@ public boolean isTEMode() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("TileMode", tileMode); data.setBoolean("isPaused", isPaused); data.setBoolean("IsActive", isActive); @@ -270,24 +270,24 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); tileMode = data.getBoolean("TileMode"); isPaused = data.getBoolean("isPaused"); isActive = data.getBoolean("IsActive"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(tileMode); buf.writeBoolean(isPaused); buf.writeBoolean(isActive); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.tileMode = buf.readBoolean(); this.isPaused = buf.readBoolean(); this.isActive = buf.readBoolean(); diff --git a/src/main/java/gregtech/common/metatileentities/electric/SimpleMachineMetaTileEntityResizable.java b/src/main/java/gregtech/common/metatileentities/electric/SimpleMachineMetaTileEntityResizable.java index fa9d64c2897..0f34b3e0fb3 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/SimpleMachineMetaTileEntityResizable.java +++ b/src/main/java/gregtech/common/metatileentities/electric/SimpleMachineMetaTileEntityResizable.java @@ -3,7 +3,6 @@ import gregtech.api.capability.impl.NotifiableItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.client.particle.IMachineParticleEffect; import gregtech.client.renderer.ICubeRenderer; @@ -95,7 +94,7 @@ protected IItemHandlerModifiable createExportItemHandler() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SimpleMachineMetaTileEntityResizable(metaTileEntityId, workable.getRecipeMap(), inputAmount, outputAmount, renderer, getTier(), hasFrontFacing(), getTankScalingFunction(), tickingParticle, randomParticle); diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOven.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOven.java index f9b0c35313c..d3b7a771ee5 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOven.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOven.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.MetaTileEntityUIFactory; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapPrimitiveMultiblockController; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIFactory; @@ -52,7 +51,7 @@ public MetaTileEntityCokeOven(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCokeOven(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOvenHatch.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOvenHatch.java index 905d9205453..99a450a2e82 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOvenHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityCokeOvenHatch.java @@ -5,7 +5,6 @@ import gregtech.api.capability.impl.ItemHandlerProxy; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.util.GTTransferUtils; import gregtech.client.renderer.ICubeRenderer; @@ -54,8 +53,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 5 == 0L && isAttachedToMultiBlock()) { TileEntity tileEntity = getNeighbor(getFrontFacing()); IFluidHandler fluidHandler = tileEntity == null ? null : tileEntity @@ -93,7 +92,7 @@ public void removeFromMultiBlock(MultiblockControllerBase controllerBase) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCokeOvenHatch(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java index da5afd69fdc..41c941d8a38 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java @@ -7,7 +7,6 @@ import gregtech.api.capability.impl.ItemHandlerList; import gregtech.api.metatileentity.MTETrait; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.metatileentity.multiblock.ui.KeyManager; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; @@ -82,7 +81,7 @@ public MetaTileEntityLargeBoiler(ResourceLocation metaTileEntityId, BoilerType b } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLargeBoiler(metaTileEntityId, boilerType); } @@ -356,26 +355,26 @@ protected void updateFormedValid() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setInteger("ThrottlePercentage", throttlePercentage); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { throttlePercentage = data.getInteger("ThrottlePercentage"); - super.readFromNBT(data); + super.readMTETag(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeVarInt(throttlePercentage); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); throttlePercentage = buf.readVarInt(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityMultiblockTank.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityMultiblockTank.java index 4a0a6e7adee..58ddbf5d88d 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityMultiblockTank.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityMultiblockTank.java @@ -4,7 +4,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.capability.impl.PropertyFluidFilter; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockWithDisplayBase; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIFactory; @@ -71,7 +70,7 @@ protected void initializeInventory() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMultiblockTank(metaTileEntityId, isMetal, capacity); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveBlastFurnace.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveBlastFurnace.java index 032ff3a9ddf..b0af8484a30 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveBlastFurnace.java @@ -2,7 +2,6 @@ import gregtech.api.GTValues; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapPrimitiveMultiblockController; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIFactory; @@ -62,7 +61,7 @@ public MetaTileEntityPrimitiveBlastFurnace(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPrimitiveBlastFurnace(metaTileEntityId); } @@ -171,8 +170,8 @@ public boolean hasMaintenanceMechanics() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (this.isActive()) { if (getWorld().isRemote) { diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveWaterPump.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveWaterPump.java index 685ec7e2674..d2ad4830f37 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveWaterPump.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPrimitiveWaterPump.java @@ -1,7 +1,6 @@ package gregtech.common.metatileentities.multi; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.IPrimitivePump; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -51,13 +50,13 @@ public MetaTileEntityPrimitiveWaterPump(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPrimitiveWaterPump(metaTileEntityId); } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 20 == 0 && isStructureFormed()) { if (biomeModifier == 0) { biomeModifier = getAmount(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPumpHatch.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPumpHatch.java index 4d841dc6582..b43e4ce28a6 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPumpHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityPumpHatch.java @@ -4,7 +4,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -60,13 +59,13 @@ public MetaTileEntityPumpHatch(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPumpHatch(metaTileEntityId); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("ContainerInventory")) { MetaTileEntityQuantumTank.legacyTankItemHandlerNBTReading(this, data.getCompoundTag("ContainerInventory"), 0, 1); @@ -74,8 +73,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { pushFluidsIntoNearbyHandlers(getFrontFacing()); fillContainerFromInternalTank(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityTankValve.java b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityTankValve.java index ac5c9d85182..07fc8107002 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityTankValve.java +++ b/src/main/java/gregtech/common/metatileentities/multi/MetaTileEntityTankValve.java @@ -3,7 +3,6 @@ import gregtech.api.capability.impl.FluidHandlerProxy; import gregtech.api.capability.impl.FluidTankList; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -42,7 +41,7 @@ public MetaTileEntityTankValve(ResourceLocation metaTileEntityId, boolean isMeta } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityTankValve(metaTileEntityId, isMetal); } @@ -68,8 +67,8 @@ public int getDefaultPaintingColor() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 5 == 0L && isAttachedToMultiBlock() && getFrontFacing() == EnumFacing.DOWN) { TileEntity tileEntity = getNeighbor(getFrontFacing()); diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityActiveTransformer.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityActiveTransformer.java index ad4f72c2e5f..bbc714c7cc0 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityActiveTransformer.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityActiveTransformer.java @@ -6,7 +6,6 @@ import gregtech.api.capability.IEnergyContainer; import gregtech.api.capability.impl.EnergyContainerList; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockWithDisplayBase; @@ -62,7 +61,7 @@ public MetaTileEntityActiveTransformer(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityActiveTransformer(metaTileEntityId); } @@ -231,30 +230,30 @@ public void setActive(boolean active) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("isActive", this.isActive); data.setBoolean("isWorkingEnabled", this.isWorkingEnabled); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.isActive = data.getBoolean("isActive"); this.isWorkingEnabled = data.getBoolean("isWorkingEnabled"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.isActive); buf.writeBoolean(this.isWorkingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isActive = buf.readBoolean(); this.isWorkingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java index 69b648b41cb..4807814759c 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java @@ -4,7 +4,6 @@ import gregtech.api.capability.GregtechDataCodes; import gregtech.api.capability.IDataAccessHatch; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -72,7 +71,7 @@ public MetaTileEntityAssemblyLine(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityAssemblyLine(metaTileEntityId); } @@ -179,8 +178,8 @@ public SoundEvent getBreakdownSound() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (ConfigHolder.client.shader.assemblyLineParticles) { if (getRecipeMapWorkable().isWorking()) { int maxBeams = getAbilities(MultiblockAbility.IMPORT_ITEMS).size() + 1; @@ -212,14 +211,14 @@ public void update() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); writeParticles(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); readParticles(buf); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java index 8d83c4b148e..f5ad200bdf7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java @@ -117,7 +117,7 @@ public MetaTileEntityCleanroom(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCleanroom(metaTileEntityId); } @@ -682,8 +682,8 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(@NotNull NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("lDist", this.lDist); data.setInteger("rDist", this.rDist); data.setInteger("bDist", this.fDist); @@ -694,8 +694,8 @@ public NBTTagCompound writeToNBT(@NotNull NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.lDist = data.hasKey("lDist") ? data.getInteger("lDist") : this.lDist; this.rDist = data.hasKey("rDist") ? data.getInteger("rDist") : this.rDist; this.hDist = data.hasKey("hDist") ? data.getInteger("hDist") : this.hDist; @@ -707,8 +707,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeInt(this.lDist); buf.writeInt(this.rDist); buf.writeInt(this.bDist); @@ -719,8 +719,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.lDist = buf.readInt(); this.rDist = buf.readInt(); this.bDist = buf.readInt(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCrackingUnit.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCrackingUnit.java index a20c11176c1..44b115166f5 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCrackingUnit.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCrackingUnit.java @@ -3,7 +3,6 @@ import gregtech.api.block.IHeatingCoilBlockStats; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; @@ -47,7 +46,7 @@ public MetaTileEntityCrackingUnit(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCrackingUnit(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDataBank.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDataBank.java index 9f8f7c9428b..2a637864418 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDataBank.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDataBank.java @@ -4,7 +4,6 @@ import gregtech.api.capability.*; import gregtech.api.capability.impl.EnergyContainerList; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockWithDisplayBase; @@ -61,7 +60,7 @@ public MetaTileEntityDataBank(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityDataBank(metaTileEntityId); } @@ -265,30 +264,30 @@ protected void configureWarningText(MultiblockUIBuilder builder) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("isActive", this.isActive); data.setBoolean("isWorkingEnabled", this.isWorkingEnabled); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.isActive = data.getBoolean("isActive"); this.isWorkingEnabled = data.getBoolean("isWorkingEnabled"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.isActive); buf.writeBoolean(this.isWorkingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isActive = buf.readBoolean(); this.isWorkingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java index 886cd35353d..9ed8d59ac19 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java @@ -5,7 +5,6 @@ import gregtech.api.capability.impl.DistillationTowerLogicHandler; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -53,7 +52,7 @@ public MetaTileEntityDistillationTower(ResourceLocation metaTileEntityId, boolea } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityDistillationTower(metaTileEntityId, this.handler != null); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java index b70680943f2..0643808cd94 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java @@ -6,7 +6,6 @@ import gregtech.api.capability.IHeatingCoil; import gregtech.api.capability.impl.HeatingCoilRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -66,7 +65,7 @@ public MetaTileEntityElectricBlastFurnace(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityElectricBlastFurnace(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFluidDrill.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFluidDrill.java index 19c09a0def4..6c88ea36d9a 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFluidDrill.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFluidDrill.java @@ -10,7 +10,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; import gregtech.api.metatileentity.multiblock.ui.TemplateBarBuilder; @@ -76,7 +75,7 @@ public MetaTileEntityFluidDrill(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityFluidDrill(metaTileEntityId, tier); } @@ -317,26 +316,26 @@ public boolean hasMaintenanceMechanics() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); return this.minerLogic.writeToNBT(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.minerLogic.readFromNBT(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); this.minerLogic.writeInitialSyncData(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.minerLogic.receiveInitialSyncData(buf); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java index eb63793d711..e92603db90d 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java @@ -8,7 +8,6 @@ import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.IFastRenderMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.ProgressBarMultiblock; @@ -112,7 +111,7 @@ public String getName() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityFusionReactor(metaTileEntityId, tier); } @@ -305,14 +304,14 @@ protected void updateFormedValid() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeVarInt(this.fusionRingColor); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.fusionRingColor = buf.readVarInt(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java index 80ba3026917..e50536829bd 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java @@ -101,7 +101,7 @@ public MetaTileEntityHPCA(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityHPCA(metaTileEntityId); } @@ -140,8 +140,8 @@ public boolean canBridge(@NotNull Collection seen) } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); // we need to know what components we have on the client if (getWorld().isRemote) { if (isStructureFormed()) { @@ -481,8 +481,8 @@ public SoundEvent getSound() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("isActive", this.isActive); data.setBoolean("isWorkingEnabled", this.isWorkingEnabled); data.setDouble("temperature", this.temperature); @@ -490,23 +490,23 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.isActive = data.getBoolean("isActive"); this.isWorkingEnabled = data.getBoolean("isWorkingEnabled"); this.temperature = data.getDouble("temperature"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.isActive); buf.writeBoolean(this.isWorkingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isActive = buf.readBoolean(); this.isWorkingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityImplosionCompressor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityImplosionCompressor.java index 705e38a459c..9040f23f83e 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityImplosionCompressor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityImplosionCompressor.java @@ -1,7 +1,6 @@ package gregtech.common.metatileentities.multi.electric; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.pattern.BlockPattern; @@ -28,7 +27,7 @@ public MetaTileEntityImplosionCompressor(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityImplosionCompressor(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java index a7411ef25d9..a44a70d7618 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java @@ -2,7 +2,6 @@ import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.pattern.BlockPattern; @@ -47,7 +46,7 @@ public MetaTileEntityLargeChemicalReactor(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLargeChemicalReactor(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeMiner.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeMiner.java index 7436c7eafd2..61270ca148f 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeMiner.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeMiner.java @@ -9,7 +9,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.IDataInfoProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockWithDisplayBase; @@ -99,7 +98,7 @@ public MetaTileEntityLargeMiner(ResourceLocation metaTileEntityId, int tier, int } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLargeMiner(metaTileEntityId, this.tier, this.minerLogic.getSpeed(), this.minerLogic.getMaximumRadius() * 2 / CHUNK_LENGTH, this.minerLogic.getFortune(), getMaterial(), getDrillingFluidConsumePerTick()); @@ -350,30 +349,30 @@ public ICubeRenderer getBaseTexture(IMultiblockPart sourcePart) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("chunkMode", new NBTTagInt(chunkMode ? 1 : 0)); data.setTag("silkTouch", new NBTTagInt(silkTouch ? 1 : 0)); return this.minerLogic.writeToNBT(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); chunkMode = data.getInteger("chunkMode") != 0; silkTouch = data.getInteger("silkTouch") != 0; this.minerLogic.readFromNBT(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); this.minerLogic.writeInitialSyncData(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.minerLogic.receiveInitialSyncData(buf); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityMultiSmelter.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityMultiSmelter.java index e7d8dd7a045..d4e857ca366 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityMultiSmelter.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityMultiSmelter.java @@ -3,7 +3,6 @@ import gregtech.api.block.IHeatingCoilBlockStats; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.ParallelLogicType; @@ -50,7 +49,7 @@ public MetaTileEntityMultiSmelter(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMultiSmelter(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityNetworkSwitch.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityNetworkSwitch.java index 4ad8d1fbe4c..3f2a1dc66ce 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityNetworkSwitch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityNetworkSwitch.java @@ -5,7 +5,6 @@ import gregtech.api.capability.IOpticalComputationProvider; import gregtech.api.capability.IOpticalComputationReceiver; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; @@ -48,7 +47,7 @@ public MetaTileEntityNetworkSwitch(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityNetworkSwitch(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java index af4b6a7a0bd..eaaf9443f24 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java @@ -8,7 +8,6 @@ import gregtech.api.capability.IEnergyContainer; import gregtech.api.capability.impl.EnergyContainerList; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IBatteryData; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -109,7 +108,7 @@ public MetaTileEntityPowerSubstation(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPowerSubstation(metaTileEntityId); } @@ -470,8 +469,8 @@ private static IKey getTimeToFillDrainText(BigInteger timeToFillSeconds) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("isActive", isActive); data.setBoolean("isWorkingEnabled", isWorkingEnabled); if (energyBank != null) { @@ -481,8 +480,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); isActive = data.getBoolean("isActive"); isWorkingEnabled = data.getBoolean("isWorkingEnabled"); if (data.hasKey(NBT_ENERGY_BANK)) { @@ -491,15 +490,15 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isActive); buf.writeBoolean(isWorkingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); isActive = buf.readBoolean(); isWorkingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityProcessingArray.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityProcessingArray.java index fbb5d7faeab..64d5620a4a7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityProcessingArray.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityProcessingArray.java @@ -7,8 +7,6 @@ import gregtech.api.metatileentity.IMachineHatchMultiblock; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.DummyCleanroom; import gregtech.api.metatileentity.multiblock.ICleanroomProvider; import gregtech.api.metatileentity.multiblock.ICleanroomReceiver; @@ -69,7 +67,7 @@ public MetaTileEntityProcessingArray(ResourceLocation metaTileEntityId, int tier } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityProcessingArray(metaTileEntityId, tier); } @@ -345,9 +343,8 @@ public void findMachineStack() { } else { this.activeRecipeMap = mte.getRecipeMap(); // Set the world for MTEs, as some need it for checking their recipes - MetaTileEntityHolder holder = new MetaTileEntityHolder(); - mte = holder.setMetaTileEntity(mte); - holder.setWorld(this.metaTileEntity.getWorld()); + mte = mte.copy(); + mte.setWorld(this.metaTileEntity.getWorld()); updateCleanroom(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPyrolyseOven.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPyrolyseOven.java index 5e225eca35e..00ffe1631de 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPyrolyseOven.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPyrolyseOven.java @@ -3,7 +3,6 @@ import gregtech.api.block.IHeatingCoilBlockStats; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; @@ -47,7 +46,7 @@ public MetaTileEntityPyrolyseOven(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPyrolyseOven(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java index 4f1810fefc4..9da40e78922 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java @@ -8,7 +8,6 @@ import gregtech.api.capability.impl.ComputationRecipeLogic; import gregtech.api.capability.impl.ItemHandlerList; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -66,7 +65,7 @@ public MetaTileEntityResearchStation(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityResearchStation(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityVacuumFreezer.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityVacuumFreezer.java index 41c2a1ea1f1..613158707d0 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityVacuumFreezer.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityVacuumFreezer.java @@ -1,7 +1,6 @@ package gregtech.common.metatileentities.multi.electric; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.pattern.BlockPattern; @@ -28,7 +27,7 @@ public MetaTileEntityVacuumFreezer(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityVacuumFreezer(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityCentralMonitor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityCentralMonitor.java index 222907d0e08..f285472e517 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityCentralMonitor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityCentralMonitor.java @@ -335,8 +335,8 @@ public boolean shouldShowVoidingModeButton() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeInt(width); buf.writeInt(height); buf.writeBoolean(isActive); @@ -345,8 +345,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.width = buf.readInt(); this.height = buf.readInt(); this.isActive = buf.readBoolean(); @@ -377,20 +377,20 @@ public void receiveCustomData(int id, PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setInteger("screenH", this.height); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.height = data.hasKey("screenH") ? data.getInteger("screenH") : this.height; reinitializeStructurePattern(); } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { + public MetaTileEntity copy() { return new MetaTileEntityCentralMonitor(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java index 0758efb8e70..cbb13d1b665 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java @@ -306,8 +306,8 @@ private void unloadPlugin() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (plugin != null && this.getController() != null && this.isActive()) { plugin.update(); } @@ -369,8 +369,8 @@ public void renderScreen(float partialTicks, RayTraceResult rayTraceResult) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); writeSync(buf); buf.writeItemStack(this.inventory.getStackInSlot(0)); if (plugin != null) { @@ -379,8 +379,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); readSync(buf); try { ItemStack itemStack = buf.readItemStack(); @@ -423,7 +423,7 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { if (this.coverPos != null) { data.setTag("coverPos", NBTUtil.createPosTag(this.coverPos.getPos())); data.setByte("coverSide", (byte) this.coverPos.getFacing().getIndex()); @@ -433,12 +433,12 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { data.setInteger("color", this.frameColor); data.setInteger("slot", this.slot); data.setTag("Inventory", this.inventory.serializeNBT()); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.frameColor = data.hasKey("color") ? data.getInteger("color") : 0XFF00Ff00; this.scale = data.hasKey("scale") ? data.getFloat("scale") : 1; this.slot = data.hasKey("slot") ? data.getInteger("slot") : 0; @@ -522,7 +522,7 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { + public MetaTileEntity copy() { return new MetaTileEntityMonitorScreen(this.metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeCombustionEngine.java b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeCombustionEngine.java index 7c367d349b6..72cff8e3a27 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeCombustionEngine.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeCombustionEngine.java @@ -7,7 +7,6 @@ import gregtech.api.capability.impl.MultiblockFuelRecipeLogic; import gregtech.api.fluids.store.FluidStorageKeys; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.metatileentity.multiblock.FuelMultiblockController; import gregtech.api.metatileentity.multiblock.IMultiblockPart; @@ -69,7 +68,7 @@ public MetaTileEntityLargeCombustionEngine(ResourceLocation metaTileEntityId, in } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLargeCombustionEngine(metaTileEntityId, tier); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeTurbine.java b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeTurbine.java index 5a15302484d..0d98181554e 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeTurbine.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/MetaTileEntityLargeTurbine.java @@ -6,7 +6,6 @@ import gregtech.api.capability.impl.MultiblockFuelRecipeLogic; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder; import gregtech.api.metatileentity.multiblock.ui.TemplateBarBuilder; @@ -71,7 +70,7 @@ public MetaTileEntityLargeTurbine(ResourceLocation metaTileEntityId, RecipeMap T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); if (isExportHatch) { buf.writeBoolean(locked); @@ -201,8 +200,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); if (isExportHatch) { this.locked = buf.readBoolean(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityItemBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityItemBus.java index 127977cb343..80d4a73fa5b 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityItemBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityItemBus.java @@ -7,7 +7,6 @@ import gregtech.api.capability.impl.NotifiableItemStackHandler; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -76,7 +75,7 @@ public MetaTileEntityItemBus(ResourceLocation metaTileEntityId, int tier, boolea } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityItemBus(metaTileEntityId, getTier(), isExportHatch); } @@ -123,8 +122,8 @@ public void removeFromMultiBlock(MultiblockControllerBase controllerBase) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 5 == 0) { if (workingEnabled) { if (isExportHatch) { @@ -203,22 +202,22 @@ public MultiblockAbility getAbility() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); buf.writeBoolean(autoCollapse); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); this.autoCollapse = buf.readBoolean(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("workingEnabled", workingEnabled); data.setBoolean("autoCollapse", autoCollapse); if (this.circuitInventory != null && !this.isExportHatch) { @@ -228,8 +227,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("workingEnabled")) { this.workingEnabled = data.getBoolean("workingEnabled"); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityLaserHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityLaserHatch.java index 83d823fbedc..ac46625e438 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityLaserHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityLaserHatch.java @@ -5,7 +5,6 @@ import gregtech.api.capability.impl.LaserContainerHandler; import gregtech.api.metatileentity.IDataInfoProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -57,7 +56,7 @@ public MetaTileEntityLaserHatch(ResourceLocation metaTileEntityId, boolean isOut } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLaserHatch(metaTileEntityId, isOutput, tier, amperage); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMachineHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMachineHatch.java index 31511ae2cb6..eb3d32944ec 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMachineHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMachineHatch.java @@ -3,7 +3,6 @@ import gregtech.api.capability.impl.NotifiableItemStackHandler; import gregtech.api.metatileentity.IMachineHatchMultiblock; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -50,7 +49,7 @@ public MetaTileEntityMachineHatch(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMachineHatch(metaTileEntityId, getTier()); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java index 8f6a37b55c2..0863118e9a1 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java @@ -13,7 +13,6 @@ import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.items.toolitem.ToolHelper; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -88,7 +87,7 @@ public MetaTileEntityMaintenanceHatch(ResourceLocation metaTileEntityId, boolean } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { + public MetaTileEntity copy() { return new MetaTileEntityMaintenanceHatch(metaTileEntityId, isConfigurable); } @@ -175,8 +174,8 @@ public boolean startWithoutProblems() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 20 == 0) { MultiblockControllerBase controller = getController(); if (controller instanceof IMaintenance) { @@ -449,8 +448,8 @@ private static Consumer> getTextWidgetText(String type, Sup } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("IsTaped", isTaped); data.setTag("tapeInventory", itemStackHandler.serializeNBT()); if (isConfigurable) { @@ -460,8 +459,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); isTaped = data.getBoolean("IsTaped"); if (data.hasKey("tapeInventory", Constants.NBT.TAG_COMPOUND)) { this.itemStackHandler.deserializeNBT(data.getCompoundTag("tapeInventory")); @@ -477,15 +476,15 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isTaped); if (isConfigurable) buf.writeDouble(durationMultiplier.doubleValue()); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); isTaped = buf.readBoolean(); if (isConfigurable) durationMultiplier = BigDecimal.valueOf(buf.readDouble()); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java index d6337c70ca3..e496cabd357 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java @@ -4,7 +4,6 @@ import gregtech.api.capability.IMufflerHatch; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.api.util.GTUtility; import gregtech.client.particle.VanillaParticleEffects; @@ -37,13 +36,13 @@ public MetaTileEntityMufflerHatch(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMufflerHatch(metaTileEntityId, getTier()); } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) { if (getController() instanceof MultiblockWithDisplayBase controller && controller.isActive()) { VanillaParticleEffects.mufflerEffect(this, controller.getMufflerParticle()); @@ -81,14 +80,14 @@ private boolean checkFrontFaceFree() { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.frontFaceFree); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.frontFaceFree = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java index dda4c982efc..5875cdd45b2 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java @@ -6,7 +6,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.capability.impl.NotifiableFluidTank; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -71,7 +70,7 @@ public MetaTileEntityMultiFluidHatch(ResourceLocation metaTileEntityId, int tier } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { + public MetaTileEntity copy() { return new MetaTileEntityMultiFluidHatch(metaTileEntityId, this.getTier(), numSlots, this.isExportHatch); } @@ -82,8 +81,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (workingEnabled) { if (isExportHatch) { @@ -118,8 +117,8 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); for (var tank : fluidTankList.getFluidTanks()) { NetworkUtils.writeFluidStack(buf, tank.getFluid()); @@ -127,8 +126,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); for (var tank : fluidTankList.getFluidTanks()) { var fluid = NetworkUtils.readFluidStack(buf); @@ -145,15 +144,15 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("workingEnabled", workingEnabled); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("workingEnabled")) { this.workingEnabled = data.getBoolean("workingEnabled"); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java index 0a1b098a0b4..d6542aaf8b6 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java @@ -106,8 +106,8 @@ public boolean isValidFrontFacing(EnumFacing facing) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); MultiblockControllerBase controller = getController(); buf.writeBoolean(controller != null); if (controller != null) { @@ -116,8 +116,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); if (buf.readBoolean()) { this.controllerPos = buf.readBlockPos(); this.controllerTile = null; diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java index a486765725c..6090a9ed5dd 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java @@ -8,7 +8,6 @@ import gregtech.api.items.metaitem.stats.IDataItem; import gregtech.api.items.metaitem.stats.IItemBehaviour; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -58,7 +57,7 @@ public MetaTileEntityObjectHolder(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityObjectHolder(metaTileEntityId); } @@ -190,29 +189,29 @@ private ItemStack getHeldItem(int slot, boolean remove) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("IsLocked", isLocked); data.setTag("Inventory", heldItems.serializeNBT()); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.isLocked = data.getBoolean("IsLocked"); this.heldItems.deserializeNBT(data.getCompoundTag("Inventory")); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isLocked); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isLocked = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityOpticalDataHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityOpticalDataHatch.java index 204dfd6c9c6..8941355cd20 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityOpticalDataHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityOpticalDataHatch.java @@ -5,7 +5,6 @@ import gregtech.api.capability.IDataAccessHatch; import gregtech.api.capability.IOpticalDataAccessHatch; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -42,7 +41,7 @@ public MetaTileEntityOpticalDataHatch(ResourceLocation metaTileEntityId, boolean } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityOpticalDataHatch(metaTileEntityId, this.isTransmitter); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchFluid.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchFluid.java index a047127d832..a037c69d99a 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchFluid.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchFluid.java @@ -8,7 +8,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.capability.impl.NotifiableItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.IPassthroughHatch; @@ -69,7 +68,7 @@ public MetaTileEntityPassthroughHatchFluid(ResourceLocation metaTileEntityId, in } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPassthroughHatchFluid(metaTileEntityId, getTier()); } @@ -86,8 +85,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 5 == 0) { if (workingEnabled) { pushFluidsIntoNearbyHandlers(getFrontFacing().getOpposite()); // outputs to back @@ -175,16 +174,16 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager, } @Override - public NBTTagCompound writeToNBT(NBTTagCompound tag) { - super.writeToNBT(tag); + public NBTTagCompound writeMTETag(NBTTagCompound tag) { + super.writeMTETag(tag); tag.setTag("FluidInventory", fluidTankList.serializeNBT()); tag.setBoolean("WorkingEnabled", workingEnabled); return tag; } @Override - public void readFromNBT(NBTTagCompound tag) { - super.readFromNBT(tag); + public void readMTETag(NBTTagCompound tag) { + super.readMTETag(tag); this.fluidTankList.deserializeNBT(tag.getCompoundTag("FluidInventory")); // Passthrough hatches before this change won't have WorkingEnabled at all, so we need to check if it exists if (tag.hasKey("WorkingEnabled")) { @@ -236,15 +235,15 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java index 4d02dba1e66..43cc81f9c35 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java @@ -7,7 +7,6 @@ import gregtech.api.capability.impl.NotifiableItemStackHandler; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.IPassthroughHatch; @@ -68,7 +67,7 @@ public MetaTileEntityPassthroughHatchItem(ResourceLocation metaTileEntityId, int } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityPassthroughHatchItem(metaTileEntityId, getTier()); } @@ -86,8 +85,8 @@ private int getInventorySize() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && getOffsetTimer() % 5 == 0) { if (workingEnabled) { pushItemsIntoNearbyHandlers(getFrontFacing().getOpposite()); // outputs to back @@ -182,16 +181,16 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager, } @Override - public NBTTagCompound writeToNBT(NBTTagCompound tag) { - super.writeToNBT(tag); + public NBTTagCompound writeMTETag(NBTTagCompound tag) { + super.writeMTETag(tag); tag.setTag("Inventory", itemStackHandler.serializeNBT()); tag.setBoolean("WorkingEnabled", workingEnabled); return tag; } @Override - public void readFromNBT(NBTTagCompound tag) { - super.readFromNBT(tag); + public void readMTETag(NBTTagCompound tag) { + super.readMTETag(tag); this.itemStackHandler.deserializeNBT(tag.getCompoundTag("Inventory")); // Passthrough hatches before this change won't have WorkingEnabled at all, so we need to check if it exists if (tag.hasKey("WorkingEnabled")) { @@ -248,15 +247,15 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityReservoirHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityReservoirHatch.java index 00241591cf8..050f19c0ee7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityReservoirHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityReservoirHatch.java @@ -7,7 +7,6 @@ import gregtech.api.capability.impl.GhostCircuitItemStackHandler; import gregtech.api.capability.impl.NotifiableFluidTank; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -71,7 +70,7 @@ public MetaTileEntityReservoirHatch(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityReservoirHatch(metaTileEntityId); } @@ -83,8 +82,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { fillContainerFromInternalTank(fluidTank); if (getOffsetTimer() % 20 == 0) { @@ -230,26 +229,26 @@ public void setGhostCircuitConfig(int config) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { this.circuitInventory.write(data); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { this.circuitInventory.read(data); - super.readFromNBT(data); + super.readMTETag(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeVarInt(this.circuitInventory.getCircuitValue()); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); setGhostCircuitConfig(buf.readVarInt()); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java index d82088dc81a..d3bac7cdd43 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java @@ -7,7 +7,6 @@ import gregtech.api.damagesources.DamageSources; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -72,7 +71,7 @@ public MetaTileEntityRotorHolder(ResourceLocation metaTileEntityId, int tier) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityRotorHolder(metaTileEntityId, getTier()); } @@ -123,8 +122,8 @@ public MultiblockAbility getAbility() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) return; if (getOffsetTimer() % 20 == 0) { @@ -321,8 +320,8 @@ public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("inventory", inventory.serializeNBT()); data.setInteger("currentSpeed", currentSpeed); data.setBoolean("Spinning", isRotorSpinning); @@ -331,8 +330,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.inventory.deserializeNBT(data.getCompoundTag("inventory")); this.currentSpeed = data.getInteger("currentSpeed"); this.isRotorSpinning = data.getBoolean("Spinning"); @@ -351,16 +350,16 @@ public void receiveCustomData(int dataId, PacketBuffer buf) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isRotorSpinning); buf.writeInt(rotorColor); buf.writeBoolean(frontFaceFree); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isRotorSpinning = buf.readBoolean(); this.rotorColor = buf.readInt(); this.frontFaceFree = buf.readBoolean(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntitySubstationEnergyHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntitySubstationEnergyHatch.java index d2ed31587aa..a5d11e6ac3e 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntitySubstationEnergyHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntitySubstationEnergyHatch.java @@ -2,7 +2,6 @@ import gregtech.api.capability.IEnergyContainer; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import net.minecraft.client.resources.I18n; @@ -24,7 +23,7 @@ public MetaTileEntitySubstationEnergyHatch(ResourceLocation metaTileEntityId, in } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySubstationEnergyHatch(metaTileEntityId, getTier(), amperage, isExportHatch); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java index 5fec49de898..e739b5cfe35 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java @@ -56,8 +56,8 @@ public MetaTileEntityAEHostablePart(ResourceLocation metaTileEntityId, int tier, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!this.getWorld().isRemote) { this.meUpdateTick++; } @@ -71,8 +71,8 @@ public void update() { public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) {} @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); if (this.aeProxy != null) { buf.writeBoolean(true); NBTTagCompound proxy = new NBTTagCompound(); @@ -87,8 +87,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); if (buf.readBoolean()) { NBTTagCompound nbtTagCompound; try { @@ -239,15 +239,15 @@ public boolean isOnline() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("AllowExtraConnections", this.allowExtraConnections); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.allowExtraConnections = data.getBoolean("AllowExtraConnections"); } } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBus.java index 23f1ab2899b..ddcac7c65d8 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBus.java @@ -14,7 +14,6 @@ import gregtech.api.gui.widgets.GhostCircuitSlotWidget; import gregtech.api.gui.widgets.SlotWidget; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -100,8 +99,8 @@ public IItemHandlerModifiable getImportItems() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && this.workingEnabled && updateMEStatus() && shouldSyncME()) { syncME(); } @@ -157,7 +156,7 @@ protected void flushInventory() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEInputBus(metaTileEntityId); } @@ -252,20 +251,20 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean(WORKING_TAG, this.workingEnabled); NBTTagList slots = new NBTTagList(); for (int i = 0; i < CONFIG_SIZE; i++) { @@ -283,8 +282,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey(WORKING_TAG)) { this.workingEnabled = data.getBoolean(WORKING_TAG); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputHatch.java index 120b25e8827..fba1d17b377 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputHatch.java @@ -9,7 +9,6 @@ import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.ImageWidget; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -82,8 +81,8 @@ protected FluidTankList createImportFluidHandler() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && this.workingEnabled && this.shouldSyncME() && updateMEStatus()) { syncME(); } @@ -140,7 +139,7 @@ protected void flushInventory() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEInputHatch(this.metaTileEntityId); } @@ -198,20 +197,20 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean(WORKING_TAG, this.workingEnabled); NBTTagList tanks = new NBTTagList(); for (int i = 0; i < CONFIG_SIZE; i++) { @@ -226,8 +225,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey(WORKING_TAG)) { this.workingEnabled = data.getBoolean(WORKING_TAG); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputBus.java index de44e64b339..cc21bd4c5c9 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputBus.java @@ -7,7 +7,6 @@ import gregtech.api.gui.GuiTextures; import gregtech.api.gui.ModularUI; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.client.renderer.texture.Textures; import gregtech.common.gui.widget.appeng.AEItemGridWidget; @@ -59,8 +58,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && this.workingEnabled && this.shouldSyncME() && this.updateMEStatus()) { if (this.internalBuffer.isEmpty()) return; @@ -90,7 +89,7 @@ public void onRemoval() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEOutputBus(this.metaTileEntityId); } @@ -134,28 +133,28 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean(WORKING_TAG, this.workingEnabled); data.setTag(ITEM_BUFFER_TAG, this.internalBuffer.serializeNBT()); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey(WORKING_TAG)) { this.workingEnabled = data.getBoolean(WORKING_TAG); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputHatch.java index 77ba57bf656..d5c4a9ee2ae 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputHatch.java @@ -7,7 +7,6 @@ import gregtech.api.gui.GuiTextures; import gregtech.api.gui.ModularUI; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.*; import gregtech.client.renderer.texture.Textures; import gregtech.common.gui.widget.appeng.AEFluidGridWidget; @@ -61,8 +60,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote && this.workingEnabled && this.shouldSyncME() && updateMEStatus()) { if (this.internalBuffer.isEmpty()) return; @@ -92,7 +91,7 @@ public void onRemoval() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEOutputHatch(this.metaTileEntityId); } @@ -136,28 +135,28 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(workingEnabled); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.workingEnabled = buf.readBoolean(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean(WORKING_TAG, this.workingEnabled); data.setTag(FLUID_BUFFER_TAG, this.internalBuffer.serializeNBT()); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey(WORKING_TAG)) { this.workingEnabled = data.getBoolean(WORKING_TAG); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java index 5233602bdca..22a8c96c982 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java @@ -5,7 +5,6 @@ import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.ImageCycleButtonWidget; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -49,7 +48,7 @@ public MetaTileEntityMEStockingBus(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEStockingBus(metaTileEntityId); } @@ -62,8 +61,8 @@ protected ExportOnlyAEStockingItemList getAEItemHandler() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (isWorkingEnabled() && autoPull && getOffsetTimer() % 100 == 0) { refreshList(); @@ -281,27 +280,27 @@ public boolean onScrewdriverClick(EntityPlayer playerIn, EnumHand hand, EnumFaci } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("AutoPull", autoPull); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.autoPull = data.getBoolean("AutoPull"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(autoPull); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.autoPull = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java index eb67268d326..67c58ba6cf1 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java @@ -5,7 +5,6 @@ import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.ImageCycleButtonWidget; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.common.metatileentities.multi.multiblockpart.appeng.slot.ExportOnlyAEFluidList; @@ -49,7 +48,7 @@ public MetaTileEntityMEStockingHatch(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityMEStockingHatch(metaTileEntityId); } @@ -62,8 +61,8 @@ protected ExportOnlyAEStockingFluidList getAEFluidHandler() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (isWorkingEnabled() && autoPull && getOffsetTimer() % 100 == 0) { refreshList(); @@ -246,27 +245,27 @@ public boolean onScrewdriverClick(EntityPlayer playerIn, EnumHand hand, EnumFaci } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("AutoPull", autoPull); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.autoPull = data.getBoolean("AutoPull"); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(autoPull); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.autoPull = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCABridge.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCABridge.java index 7bc26b5edc9..c15924eccb8 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCABridge.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCABridge.java @@ -2,7 +2,6 @@ import gregtech.api.GTValues; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; @@ -18,7 +17,7 @@ public MetaTileEntityHPCABridge(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityHPCABridge(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java index c70e83674cd..0194428caad 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java @@ -183,8 +183,8 @@ public void setDamaged(boolean damaged) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); if (canBeDamaged()) { data.setBoolean("Damaged", damaged); } @@ -192,24 +192,24 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (canBeDamaged()) { this.damaged = data.getBoolean("Damaged"); } } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); if (canBeDamaged()) { buf.writeBoolean(damaged); } } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); if (canBeDamaged()) { this.damaged = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComputation.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComputation.java index 9d8ebade08e..f8597f12d18 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComputation.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComputation.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.capability.IHPCAComputationProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; @@ -22,7 +21,7 @@ public MetaTileEntityHPCAComputation(ResourceLocation metaTileEntityId, boolean } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityHPCAComputation(metaTileEntityId, advanced); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCACooler.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCACooler.java index 100960eab92..0528137c9d0 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCACooler.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCACooler.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.capability.IHPCACoolantProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; @@ -22,7 +21,7 @@ public MetaTileEntityHPCACooler(ResourceLocation metaTileEntityId, boolean advan } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityHPCACooler(metaTileEntityId, advanced); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAEmpty.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAEmpty.java index fdd8cb62050..55ba65e56bc 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAEmpty.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAEmpty.java @@ -1,7 +1,6 @@ package gregtech.common.metatileentities.multi.multiblockpart.hpca; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; @@ -14,7 +13,7 @@ public MetaTileEntityHPCAEmpty(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityHPCAEmpty(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java index 804980f7952..025c67cc67f 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java @@ -2,7 +2,6 @@ import gregtech.api.capability.impl.SteamMultiWorkable; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapSteamMultiblockController; import gregtech.api.pattern.BlockPattern; @@ -44,7 +43,7 @@ public MetaTileEntitySteamGrinder(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { + public MetaTileEntity copy() { return new MetaTileEntitySteamGrinder(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java index b3a3e5fa039..f8c0e0217de 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java +++ b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.capability.impl.SteamMultiWorkable; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; import gregtech.api.metatileentity.multiblock.RecipeMapSteamMultiblockController; import gregtech.api.pattern.BlockPattern; @@ -43,7 +42,7 @@ public MetaTileEntitySteamOven(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySteamOven(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/primitive/MetaTileEntityCharcoalPileIgniter.java b/src/main/java/gregtech/common/metatileentities/primitive/MetaTileEntityCharcoalPileIgniter.java index ecbd0241f1d..677fd99ba30 100644 --- a/src/main/java/gregtech/common/metatileentities/primitive/MetaTileEntityCharcoalPileIgniter.java +++ b/src/main/java/gregtech/common/metatileentities/primitive/MetaTileEntityCharcoalPileIgniter.java @@ -91,7 +91,7 @@ public MetaTileEntityCharcoalPileIgniter(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCharcoalPileIgniter(metaTileEntityId); } @@ -291,8 +291,8 @@ private void updateMaxProgressTime() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld() != null) { if (!getWorld().isRemote && !this.isStructureFormed() && getOffsetTimer() % 20 == 0) { this.reinitializeStructurePattern(); @@ -375,8 +375,8 @@ public List getMatchingShapes() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("lDist", this.lDist); data.setInteger("rDist", this.rDist); data.setInteger("hDist", this.hDist); @@ -387,8 +387,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.lDist = data.hasKey("lDist") ? data.getInteger("lDist") : this.lDist; this.rDist = data.hasKey("rDist") ? data.getInteger("rDist") : this.rDist; this.hDist = data.hasKey("hDist") ? data.getInteger("hDist") : this.hDist; @@ -398,8 +398,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeInt(this.lDist); buf.writeInt(this.rDist); buf.writeInt(this.hDist); @@ -409,8 +409,8 @@ public void writeInitialSyncData(PacketBuffer buf) { } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.lDist = buf.readInt(); this.rDist = buf.readInt(); this.hDist = buf.readInt(); diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamAlloySmelter.java b/src/main/java/gregtech/common/metatileentities/steam/SteamAlloySmelter.java index b0ed0494fed..2336211a4e8 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamAlloySmelter.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamAlloySmelter.java @@ -7,7 +7,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -26,7 +25,7 @@ public SteamAlloySmelter(ResourceLocation metaTileEntityId, boolean isHighPressu } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamAlloySmelter(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamCompressor.java b/src/main/java/gregtech/common/metatileentities/steam/SteamCompressor.java index 6e5ab571600..4bcac10f4a3 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamCompressor.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamCompressor.java @@ -6,7 +6,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.renderer.texture.Textures; @@ -23,7 +22,7 @@ public SteamCompressor(ResourceLocation metaTileEntityId, boolean isHighPressure } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamCompressor(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamExtractor.java b/src/main/java/gregtech/common/metatileentities/steam/SteamExtractor.java index efd65e3c499..f1909a11ca2 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamExtractor.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamExtractor.java @@ -6,7 +6,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -25,7 +24,7 @@ public SteamExtractor(ResourceLocation metaTileEntityId, boolean isHighPressure) } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamExtractor(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamFurnace.java b/src/main/java/gregtech/common/metatileentities/steam/SteamFurnace.java index 30e3fb89850..28c87a2452f 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamFurnace.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamFurnace.java @@ -7,7 +7,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -30,7 +29,7 @@ public SteamFurnace(ResourceLocation metaTileEntityId, boolean isHighPressure) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamFurnace(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamHammer.java b/src/main/java/gregtech/common/metatileentities/steam/SteamHammer.java index 576b8e6f180..b08156d305d 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamHammer.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamHammer.java @@ -6,7 +6,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -24,7 +23,7 @@ public SteamHammer(ResourceLocation metaTileEntityId, boolean isHighPressure) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamHammer(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamMacerator.java b/src/main/java/gregtech/common/metatileentities/steam/SteamMacerator.java index 869839f8c39..7d23219fa83 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamMacerator.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamMacerator.java @@ -6,7 +6,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -24,7 +23,7 @@ public SteamMacerator(ResourceLocation metaTileEntityId, boolean isHighPressure) } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamMacerator(metaTileEntityId, isHighPressure); } @@ -57,8 +56,8 @@ public int getItemOutputLimit() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (isActive() && getWorld().isRemote) { VanillaParticleEffects.TOP_SMOKE_SMALL.runEffect(this); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamMiner.java b/src/main/java/gregtech/common/metatileentities/steam/SteamMiner.java index cbe9ae2aa7a..75ec23295a9 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamMiner.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamMiner.java @@ -10,7 +10,6 @@ import gregtech.api.damagesources.DamageSources; import gregtech.api.metatileentity.IDataInfoProvider; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuiTheme; import gregtech.api.mui.GTGuis; @@ -83,7 +82,7 @@ public SteamMiner(ResourceLocation metaTileEntityId, int speed, int maximumRadiu } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamMiner(metaTileEntityId, this.minerLogic.getSpeed(), this.minerLogic.getMaximumRadius(), this.minerLogic.getFortune()); } @@ -249,8 +248,8 @@ public boolean drainEnergy(boolean simulate) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); this.minerLogic.performMining(); if (!getWorld().isRemote) { if (getOffsetTimer() % 5 == 0) @@ -264,32 +263,32 @@ public void update() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("needsVenting", this.needsVenting); data.setBoolean("ventingStuck", this.ventingStuck); return this.minerLogic.writeToNBT(data); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.needsVenting = data.getBoolean("needsVenting"); this.ventingStuck = data.getBoolean("ventingStuck"); this.minerLogic.readFromNBT(data); } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.needsVenting); buf.writeBoolean(this.ventingStuck); this.minerLogic.writeInitialSyncData(buf); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.needsVenting = buf.readBoolean(); this.ventingStuck = buf.readBoolean(); this.minerLogic.receiveInitialSyncData(buf); diff --git a/src/main/java/gregtech/common/metatileentities/steam/SteamRockBreaker.java b/src/main/java/gregtech/common/metatileentities/steam/SteamRockBreaker.java index 21ba4e49276..570da48ed49 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/SteamRockBreaker.java +++ b/src/main/java/gregtech/common/metatileentities/steam/SteamRockBreaker.java @@ -7,7 +7,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.RecipeMaps; import gregtech.client.particle.VanillaParticleEffects; @@ -39,7 +38,7 @@ public SteamRockBreaker(ResourceLocation metaTileEntityId, boolean isHighPressur } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamRockBreaker(metaTileEntityId, isHighPressure); } @@ -101,15 +100,15 @@ public ModularUI createUI(EntityPlayer player) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setBoolean("hasValidFluids", hasValidFluids); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("hasValidFluids")) { this.hasValidFluids = data.getBoolean("hasValidFluids"); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java index f322cfbc4b8..83c1365e20a 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java @@ -128,8 +128,8 @@ public int getDefaultPaintingColor() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("FuelBurnTimeLeft", fuelBurnTimeLeft); data.setInteger("FuelMaxBurnTime", fuelMaxBurnTime); data.setInteger("CurrentTemperature", currentTemperature); @@ -139,8 +139,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.fuelBurnTimeLeft = data.getInteger("FuelBurnTimeLeft"); this.fuelMaxBurnTime = data.getInteger("FuelMaxBurnTime"); this.currentTemperature = data.getInteger("CurrentTemperature"); @@ -150,14 +150,14 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(isBurning); } @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isBurning = buf.readBoolean(); } @@ -179,8 +179,8 @@ public void setFuelMaxBurnTime(int fuelMaxBurnTime) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { updateCurrentTemperature(); if (getOffsetTimer() % 10 == 0) { diff --git a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamCoalBoiler.java b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamCoalBoiler.java index 555595b007f..5c2a91f8671 100755 --- a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamCoalBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamCoalBoiler.java @@ -5,7 +5,6 @@ import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.category.ICategoryOverride; import gregtech.client.renderer.texture.Textures; @@ -26,7 +25,7 @@ public SteamCoalBoiler(ResourceLocation metaTileEntityId, boolean isHighPressure } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamCoalBoiler(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamLavaBoiler.java b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamLavaBoiler.java index 1269bf30450..b5e15f772a0 100755 --- a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamLavaBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamLavaBoiler.java @@ -9,7 +9,6 @@ import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.TankWidget; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.unification.material.Materials; import gregtech.client.particle.VanillaParticleEffects; import gregtech.client.renderer.texture.Textures; @@ -81,7 +80,7 @@ public SteamLavaBoiler(ResourceLocation metaTileEntityId, boolean isHighPressure } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamLavaBoiler(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamSolarBoiler.java b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamSolarBoiler.java index 970afae65d3..0d8648bd9d2 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamSolarBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamSolarBoiler.java @@ -4,7 +4,6 @@ import gregtech.api.gui.ModularUI; import gregtech.api.gui.widgets.ProgressWidget.MoveType; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -20,7 +19,7 @@ public SteamSolarBoiler(ResourceLocation metaTileEntityId, boolean isHighPressur } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new SteamSolarBoiler(metaTileEntityId, isHighPressure); } diff --git a/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamHatch.java b/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamHatch.java index 879cb9c2da0..6de87d3aed6 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamHatch.java +++ b/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamHatch.java @@ -6,7 +6,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -63,13 +62,13 @@ public MetaTileEntitySteamHatch(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySteamHatch(metaTileEntityId); } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("ContainerInventory")) { MetaTileEntityQuantumTank.legacyTankItemHandlerNBTReading(this, data.getCompoundTag("ContainerInventory"), 0, 1); @@ -77,8 +76,8 @@ public void readFromNBT(NBTTagCompound data) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { fillContainerFromInternalTank(importFluids); fillInternalTankFromFluidContainer(); diff --git a/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamItemBus.java b/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamItemBus.java index 6734a00616a..e1e49baa2d0 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamItemBus.java +++ b/src/main/java/gregtech/common/metatileentities/steam/multiblockpart/MetaTileEntitySteamItemBus.java @@ -1,7 +1,6 @@ package gregtech.common.metatileentities.steam.multiblockpart; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; @@ -48,7 +47,7 @@ public MetaTileEntitySteamItemBus(ResourceLocation metaTileEntityId, boolean isE } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntitySteamItemBus(metaTileEntityId, isExportHatch); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java index 353cdf406c3..c2aa06e183f 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java @@ -5,7 +5,6 @@ import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuis; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -70,7 +69,7 @@ protected void initializeInventory() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityBuffer(metaTileEntityId, tier); } @@ -139,16 +138,16 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public NBTTagCompound writeToNBT(NBTTagCompound tag) { - super.writeToNBT(tag); + public NBTTagCompound writeMTETag(NBTTagCompound tag) { + super.writeMTETag(tag); tag.setTag("Inventory", itemStackHandler.serializeNBT()); tag.setTag("FluidInventory", fluidTankList.serializeNBT()); return tag; } @Override - public void readFromNBT(NBTTagCompound tag) { - super.readFromNBT(tag); + public void readMTETag(NBTTagCompound tag) { + super.readMTETag(tag); this.itemStackHandler.deserializeNBT(tag.getCompoundTag("Inventory")); this.fluidTankList.deserializeNBT(tag.getCompoundTag("FluidInventory")); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java index 5c6948c5ffc..2422dbdaf6e 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java @@ -67,7 +67,7 @@ public MetaTileEntityCrate(ResourceLocation metaTileEntityId, Material material, } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCrate(metaTileEntityId, material, inventorySize, rowSize); } @@ -206,16 +206,16 @@ public int getItemStackLimit(ItemStack stack) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("Inventory", inventory.serializeNBT()); data.setBoolean(TAPED_NBT, isTaped); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.inventory.deserializeNBT(data.getCompoundTag("Inventory")); if (data.hasKey(TAPED_NBT)) { this.isTaped = data.getBoolean(TAPED_NBT); diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeChest.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeChest.java index 469d5e3df4e..bb1edb76653 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeChest.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeChest.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuis; import gregtech.api.util.GTTransferUtils; import gregtech.api.util.GTUtility; @@ -84,7 +83,7 @@ public void renderMetaTileEntity(double x, double y, double z, float partialTick } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCreativeChest(this.metaTileEntityId); } @@ -104,10 +103,10 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager, } @Override - public void update() { + public void updateMTE() { ItemStack stack = creativeHandler.getStackInSlot(0).copy(); this.virtualItemStack = stack; // For rendering purposes - super.update(); + super.updateMTE(); if (ticksPerCycle == 0 || getOffsetTimer() % ticksPerCycle != 0) return; if (getWorld().isRemote || !active || stack.isEmpty() || isConnected()) return; @@ -138,8 +137,8 @@ protected boolean shouldTransferExport() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setInteger("ItemsPerCycle", itemsPerCycle); data.setInteger("TicksPerCycle", ticksPerCycle); data.setBoolean("Active", active); @@ -147,8 +146,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (virtualItemStack.isEmpty()) creativeHandler.deserializeNBT(data.getCompoundTag("ItemStackHandler")); itemsPerCycle = data.getInteger("ItemsPerCycle"); @@ -185,8 +184,8 @@ public void addInformation(ItemStack stack, @Nullable World player, List } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.creativeHandler.setStackInSlot(0, this.virtualItemStack); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java index 33e9469453d..e210f4cf2ed 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java @@ -14,7 +14,6 @@ import gregtech.api.gui.widgets.ImageWidget; import gregtech.api.gui.widgets.TextFieldWidget2; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; import gregtech.client.utils.TooltipHelper; @@ -86,7 +85,7 @@ public Pair getParticleTexture() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCreativeEnergy(); } @@ -179,8 +178,8 @@ public long getOutputPerSec() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) return; if (getOffsetTimer() % 20 == 0) { this.setIOSpeed(energyIOPerSec); @@ -215,18 +214,18 @@ public void update() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setLong("Voltage", voltage); data.setInteger("Amps", amps); data.setByte("Tier", (byte) setTier); data.setBoolean("Active", active); data.setBoolean("Source", source); data.setLong("EnergyIOPerSec", lastEnergyIOPerSec); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { voltage = data.getLong("Voltage"); amps = data.getInteger("Amps"); setTier = data.getByte("Tier"); @@ -234,7 +233,7 @@ public void readFromNBT(NBTTagCompound data) { source = data.getBoolean("Source"); if (data.hasKey("EnergyIOPerSec")) lastEnergyIOPerSec = data.getLong("EnergyIOPerSec"); - super.readFromNBT(data); + super.readMTETag(data); } @Override @@ -324,14 +323,14 @@ public void receiveCustomData(int dataId, @NotNull PacketBuffer buf) { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(active); } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.active = buf.readBoolean(); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeTank.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeTank.java index 843e7387bdc..2826cb5e774 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeTank.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeTank.java @@ -2,7 +2,6 @@ import gregtech.api.GTValues; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuis; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -84,7 +83,7 @@ public void renderMetaTileEntity(double x, double y, double z, float partialTick } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityCreativeTank(this.metaTileEntityId); } @@ -104,8 +103,8 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager, } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (ticksPerCycle == 0 || getOffsetTimer() % ticksPerCycle != 0 || fluidTank.getFluid() == null || getWorld().isRemote || !active || isConnected()) return; @@ -122,19 +121,19 @@ public void update() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { + public NBTTagCompound writeMTETag(NBTTagCompound data) { data.setInteger("mBPerCycle", mBPerCycle); data.setInteger("TicksPerCycle", ticksPerCycle); data.setBoolean("Active", active); - return super.writeToNBT(data); + return super.writeMTETag(data); } @Override - public void readFromNBT(NBTTagCompound data) { + public void readMTETag(NBTTagCompound data) { mBPerCycle = data.getInteger("mBPerCycle"); ticksPerCycle = data.getInteger("TicksPerCycle"); active = data.getBoolean("Active"); - super.readFromNBT(data); + super.readMTETag(data); } @Override diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityDrum.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityDrum.java index 6e94076e584..5dbc2b95733 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityDrum.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityDrum.java @@ -5,7 +5,6 @@ import gregtech.api.capability.impl.GTFluidHandlerItemStack; import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.ModHandler; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.properties.PropertyKey; @@ -99,7 +98,7 @@ public MetaTileEntityDrum(ResourceLocation metaTileEntityId, @NotNull IPropertyF } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityDrum(metaTileEntityId, fluidFilter, isWood, color, tankSize); } @@ -152,8 +151,8 @@ public ICapabilityProvider initItemStackCapabilities(ItemStack itemStack) { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); FluidStack fluidStack = fluidTank.getFluid(); buf.writeBoolean(fluidStack != null); if (fluidStack != null) { @@ -165,8 +164,8 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); FluidStack fluidStack = null; if (buf.readBoolean()) { try { @@ -188,8 +187,8 @@ public void receiveCustomData(int dataId, @NotNull PacketBuffer buf) { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (!getWorld().isRemote) { if (isAutoOutput && getOffsetTimer() % 5 == 0) { pushFluidsIntoNearbyHandlers(EnumFacing.DOWN); @@ -298,16 +297,16 @@ public boolean showToolUsages() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("FluidInventory", ((FluidTank) fluidInventory).writeToNBT(new NBTTagCompound())); data.setBoolean("AutoOutput", isAutoOutput); return data; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); ((FluidTank) this.fluidInventory).readFromNBT(data.getCompoundTag("FluidInventory")); isAutoOutput = data.getBoolean("AutoOutput"); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLongDistanceEndpoint.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLongDistanceEndpoint.java index 84ce773b017..db245c6e9d7 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLongDistanceEndpoint.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLongDistanceEndpoint.java @@ -141,15 +141,15 @@ private List findNetworks() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - NBTTagCompound nbt = super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + NBTTagCompound nbt = super.writeMTETag(data); data.setByte("Type", (byte) ioType.ordinal()); return nbt; } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.ioType = IOType.values()[data.getByte("Type")]; } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java index 4c4cee04ff4..2e93b4cb00e 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java @@ -8,7 +8,6 @@ import gregtech.api.metatileentity.IFastRenderMetaTileEntity; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTTransferUtils; import gregtech.api.util.GTUtility; import gregtech.api.util.TextFormattingUtil; @@ -86,7 +85,7 @@ public int getTier() { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityQuantumChest(metaTileEntityId, tier, maxStoredItems); } @@ -119,8 +118,8 @@ public Pair getParticleTexture() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); EnumFacing currentOutputFacing = getOutputFacing(); if (!getWorld().isRemote) { if (shouldTransferImport()) { @@ -255,8 +254,8 @@ protected IItemHandlerModifiable createExportItemHandler() { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - NBTTagCompound tagCompound = super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + NBTTagCompound tagCompound = super.writeMTETag(data); if (!virtualItemStack.isEmpty() && itemsStoredInside > 0L) { tagCompound.setTag(NBT_ITEMSTACK, virtualItemStack.writeToNBT(new NBTTagCompound())); tagCompound.setLong(NBT_ITEMCOUNT, itemsStoredInside); @@ -267,8 +266,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("ItemStack", NBT.TAG_COMPOUND)) { this.virtualItemStack = new ItemStack(data.getCompoundTag("ItemStack")); if (!virtualItemStack.isEmpty()) { @@ -348,8 +347,8 @@ public boolean onWrenchClick(EntityPlayer playerIn, EnumHand hand, EnumFacing fa } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); this.virtualItemStack.setCount(1); NetworkUtils.writeItemStack(buf, virtualItemStack); NetworkUtils.writeItemStack(buf, lockedStack); @@ -357,8 +356,8 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.virtualItemStack = NetworkUtils.readItemStack(buf); this.lockedStack = NetworkUtils.readItemStack(buf); this.itemsStoredInside = buf.readLong(); diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumExtender.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumExtender.java index 8e06b8d6f38..d6c0c8f350a 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumExtender.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumExtender.java @@ -4,7 +4,6 @@ import gregtech.api.capability.GregtechDataCodes; import gregtech.api.gui.ModularUI; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -28,7 +27,7 @@ public MetaTileEntityQuantumExtender(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityQuantumExtender(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumProxy.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumProxy.java index a3ca7fa92d5..83a824e8642 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumProxy.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumProxy.java @@ -4,7 +4,6 @@ import gregtech.api.capability.IQuantumController; import gregtech.api.gui.ModularUI; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -31,7 +30,7 @@ public MetaTileEntityQuantumProxy(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityQuantumProxy(metaTileEntityId); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorage.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorage.java index 440c4290075..f1fcc9986fa 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorage.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorage.java @@ -394,8 +394,8 @@ public void setAllowInputFromOutputSide(boolean allowInputFromOutputSide) { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(controllerPos != null); if (controllerPos != null) { buf.writeBlockPos(controllerPos); @@ -407,8 +407,8 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); if (buf.readBoolean()) { controllerPos = buf.readBlockPos(); scheduleRenderUpdate(); @@ -450,8 +450,8 @@ public void receiveCustomData(int dataId, @NotNull PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - NBTTagCompound tagCompound = super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + NBTTagCompound tagCompound = super.writeMTETag(data); tagCompound.setBoolean(HAS_CONTROLLER, controllerPos != null); if (controllerPos != null) { tagCompound.setLong(CONTROLLER_POS, controllerPos.toLong()); @@ -467,8 +467,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.getBoolean(HAS_CONTROLLER)) { this.controllerPos = BlockPos.fromLong(data.getLong(CONTROLLER_POS)); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorageController.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorageController.java index 978fb816c46..7490b20316c 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorageController.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumStorageController.java @@ -87,13 +87,13 @@ public MetaTileEntityQuantumStorageController(ResourceLocation metaTileEntityId) } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityQuantumStorageController(metaTileEntityId); } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); if (getWorld().isRemote) return; if (getOffsetTimer() % 10 == 0) { @@ -399,22 +399,22 @@ public final long getEnergyUsage() { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeBoolean(this.isPowered); buf.writeLong(this.energyConsumption); } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.isPowered = buf.readBoolean(); this.energyConsumption = buf.readLong(); } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - NBTTagCompound tagCompound = super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + NBTTagCompound tagCompound = super.writeMTETag(data); NBTTagList list = new NBTTagList(); for (BlockPos pos : storagePositions) { list.appendTag(new NBTTagLong(pos.toLong())); @@ -427,8 +427,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); NBTTagList list = data.getTagList("StorageInstances", Constants.NBT.TAG_LONG); for (int i = 0; i < list.tagCount(); i++) { storagePositions.add(BlockPos.fromLong(((NBTTagLong) list.get(i)).getLong())); diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java index 36b141fdf86..780afab52b4 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java @@ -13,7 +13,6 @@ import gregtech.api.metatileentity.IFastRenderMetaTileEntity; import gregtech.api.metatileentity.ITieredMetaTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.sync.GTFluidSyncHandler; import gregtech.api.util.GTLog; import gregtech.api.util.GTUtility; @@ -104,8 +103,8 @@ protected void initializeInventory() { } @Override - public void update() { - super.update(); + public void updateMTE() { + super.updateMTE(); EnumFacing currentOutputFacing = getOutputFacing(); if (!getWorld().isRemote) { fillContainerFromInternalTank(); @@ -154,8 +153,8 @@ protected void updatePreviousFluid(FluidStack currentFluid) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("FluidInventory", fluidTank.writeToNBT(new NBTTagCompound())); if (locked && lockedFluid != null) { data.setTag("LockedFluid", lockedFluid.writeToNBT(new NBTTagCompound())); @@ -164,8 +163,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); if (data.hasKey("ContainerInventory")) { legacyTankItemHandlerNBTReading(this, data.getCompoundTag("ContainerInventory"), 0, 1); } @@ -226,7 +225,7 @@ public void writeItemStackData(NBTTagCompound tag) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityQuantumTank(metaTileEntityId, tier, maxFluidCapacity); } @@ -379,15 +378,15 @@ public boolean isValidFrontFacing(EnumFacing facing) { } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); NetworkUtils.writeFluidStack(buf, fluidTank.getFluid()); NetworkUtils.writeFluidStack(buf, this.lockedFluid); } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); if (this.frontFacing == EnumFacing.UP) { if (this.outputFacing != EnumFacing.DOWN) { diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java index 3483c603223..863f60d4b24 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java @@ -4,7 +4,6 @@ import gregtech.api.capability.impl.ItemHandlerList; import gregtech.api.items.itemhandlers.GTItemStackHandler; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.mui.GTGuiTextures; import gregtech.api.mui.GTGuis; import gregtech.api.mui.sync.PagedWidgetSyncHandler; @@ -96,7 +95,7 @@ public MetaTileEntityWorkbench(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityWorkbench(metaTileEntityId); } @@ -119,8 +118,8 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override - public void writeInitialSyncData(@NotNull PacketBuffer buf) { - super.writeInitialSyncData(buf); + public void writeInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.writeInitialSyncDataMTE(buf); buf.writeInt(this.itemsCrafted); for (int i = 0; i < craftingGrid.getSlots(); i++) { NetworkUtils.writeItemStack(buf, craftingGrid.getStackInSlot(i)); @@ -130,8 +129,8 @@ public void writeInitialSyncData(@NotNull PacketBuffer buf) { } @Override - public void receiveInitialSyncData(@NotNull PacketBuffer buf) { - super.receiveInitialSyncData(buf); + public void receiveInitialSyncDataMTE(@NotNull PacketBuffer buf) { + super.receiveInitialSyncDataMTE(buf); this.itemsCrafted = buf.readInt(); for (int i = 0; i < craftingGrid.getSlots(); i++) { craftingGrid.setStackInSlot(i, NetworkUtils.readItemStack(buf)); @@ -142,8 +141,8 @@ public void receiveInitialSyncData(@NotNull PacketBuffer buf) { } @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - super.writeToNBT(data); + public NBTTagCompound writeMTETag(NBTTagCompound data) { + super.writeMTETag(data); data.setTag("CraftingGridInventory", craftingGrid.serializeNBT()); data.setTag("ToolInventory", toolInventory.serializeNBT()); data.setTag("InternalInventory", internalInventory.serializeNBT()); @@ -153,8 +152,8 @@ public NBTTagCompound writeToNBT(NBTTagCompound data) { } @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); + public void readMTETag(NBTTagCompound data) { + super.readMTETag(data); this.craftingGrid.deserializeNBT(data.getCompoundTag("CraftingGridInventory")); this.toolInventory.deserializeNBT(data.getCompoundTag("ToolInventory")); this.internalInventory.deserializeNBT(data.getCompoundTag("InternalInventory")); diff --git a/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java b/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java index 186b4e4970f..ba396c09caf 100644 --- a/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java +++ b/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.capability.impl.FluidHandlerDelegate; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.pipenet.longdist.ILDEndpoint; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -51,7 +50,7 @@ public MetaTileEntityLDFluidEndpoint(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLDFluidEndpoint(this.metaTileEntityId); } diff --git a/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java b/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java index dd04ac94ab0..03ed6cc42e8 100644 --- a/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java +++ b/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java @@ -3,7 +3,6 @@ import gregtech.api.GTValues; import gregtech.api.capability.impl.ItemHandlerDelegate; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.pipenet.longdist.ILDEndpoint; import gregtech.api.util.GTUtility; import gregtech.client.renderer.texture.Textures; @@ -51,7 +50,7 @@ public MetaTileEntityLDItemEndpoint(ResourceLocation metaTileEntityId) { } @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return new MetaTileEntityLDItemEndpoint(this.metaTileEntityId); } diff --git a/src/main/java/gregtech/core/network/packets/PacketRecoverMTE.java b/src/main/java/gregtech/core/network/packets/PacketRecoverMTE.java index 443f64e8fc1..a228e440e66 100644 --- a/src/main/java/gregtech/core/network/packets/PacketRecoverMTE.java +++ b/src/main/java/gregtech/core/network/packets/PacketRecoverMTE.java @@ -52,7 +52,7 @@ public void executeServer(NetHandlerPlayServer handler) { MTERegistry registry = metaTileEntity.getRegistry(); buffer.writeVarInt(registry.getNetworkId()); buffer.writeVarInt(registry.getIdByObjectName(metaTileEntity.metaTileEntityId)); - metaTileEntity.writeInitialSyncData(buffer); + metaTileEntity.writeInitialSyncDataMTE(buffer); }); } else if (!(world.getBlockState(pos).getBlock() instanceof BlockMachine)) { handler.player.connection.sendPacket(new SPacketBlockChange(world, pos)); diff --git a/src/main/java/gregtech/integration/theoneprobe/provider/debug/DebugTickTimeProvider.java b/src/main/java/gregtech/integration/theoneprobe/provider/debug/DebugTickTimeProvider.java index 2cab557888c..4575257f84b 100644 --- a/src/main/java/gregtech/integration/theoneprobe/provider/debug/DebugTickTimeProvider.java +++ b/src/main/java/gregtech/integration/theoneprobe/provider/debug/DebugTickTimeProvider.java @@ -1,6 +1,6 @@ package gregtech.integration.theoneprobe.provider.debug; -import gregtech.api.metatileentity.MetaTileEntityHolder; +import gregtech.api.metatileentity.GTBaseTileEntity; import gregtech.api.util.TextFormattingUtil; import gregtech.common.ConfigHolder; @@ -26,7 +26,7 @@ public void addProbeInfo(ProbeMode mode, IProbeInfo probeInfo, EntityPlayer play IBlockState blockState, IProbeHitData data) { if (ConfigHolder.misc.debug) { TileEntity tile = world.getTileEntity(data.getPos()); - if (tile instanceof MetaTileEntityHolder holder) { + if (tile instanceof GTBaseTileEntity holder) { double[] timeStatistics = holder.getTimeStatistics(); if (timeStatistics != null) { double averageTickTime = timeStatistics[0]; @@ -34,7 +34,7 @@ public void addProbeInfo(ProbeMode mode, IProbeInfo probeInfo, EntityPlayer play // this is for dev environment debug, so don't worry about translating probeInfo.text("Average: " + - TextFormattingUtil.formatNumbers(averageTickTime / MetaTileEntityHolder.TRACKED_TICKS) + + TextFormattingUtil.formatNumbers(averageTickTime / GTBaseTileEntity.TRACKED_TICKS) + "ns"); probeInfo.text("Worst: " + TextFormattingUtil.formatNumbers(worstTickTime) + "ns"); } diff --git a/src/main/java/gregtech/mixins/minecraft/ClientHandlerMixin.java b/src/main/java/gregtech/mixins/minecraft/ClientHandlerMixin.java new file mode 100644 index 00000000000..3bd1455690a --- /dev/null +++ b/src/main/java/gregtech/mixins/minecraft/ClientHandlerMixin.java @@ -0,0 +1,51 @@ +package gregtech.mixins.minecraft; + +import gregtech.client.utils.ClientHandlerHooks; + +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.server.SPacketChunkData; +import net.minecraft.network.play.server.SPacketUpdateTileEntity; +import net.minecraft.world.chunk.Chunk; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(NetHandlerPlayClient.class) +public abstract class ClientHandlerMixin { + + @Shadow + private WorldClient world; + + /** + * Initializes any MetaTileEntities right before {@link Chunk#read(PacketBuffer, int, boolean) Chunk.read()} is + * called in + * {@link NetHandlerPlayClient#handleChunkData(SPacketChunkData) handleChunkData()}. + * + * @param packetIn Chunk Data Packet + */ + @Inject(method = "handleChunkData", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/chunk/Chunk;read(Lnet/minecraft/network/PacketBuffer;IZ)V")) + public void initClientTiles(SPacketChunkData packetIn, CallbackInfo ci) { + // todo this might not be necessary anymore, though the TE does need to be initialized for initial sync data + ClientHandlerHooks.handleTags(this.world, packetIn.getTileEntityTags()); + } + + /** + * Initializes the MetaTileEntity before {@link gregtech.api.metatileentity.SyncedTileEntityBase#handleUpdateTag + * handleUpdateTag()} is called + * + * @param packetIn Tile Entity Update Packet + */ + @Inject(method = "handleUpdateTileEntity", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/client/multiplayer/WorldClient;getTileEntity(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/tileentity/TileEntity;")) + public void initClientTile(SPacketUpdateTileEntity packetIn, CallbackInfo ci) { + ClientHandlerHooks.handleTag(this.world, packetIn.getNbtCompound()); + } +} diff --git a/src/main/java/gregtech/mixins/minecraft/RenderChunkMixin.java b/src/main/java/gregtech/mixins/minecraft/RenderChunkMixin.java index 5c18f5ad4ea..8094e94cfa3 100644 --- a/src/main/java/gregtech/mixins/minecraft/RenderChunkMixin.java +++ b/src/main/java/gregtech/mixins/minecraft/RenderChunkMixin.java @@ -1,6 +1,6 @@ package gregtech.mixins.minecraft; -import gregtech.api.metatileentity.MetaTileEntityHolder; +import gregtech.api.metatileentity.GTBaseTileEntity; import net.minecraft.client.renderer.chunk.RenderChunk; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; @@ -22,7 +22,7 @@ public TileEntitySpecialRenderer adjustMTERenderer(Til TileEntity tileentity, Operation> originalRenderer) { // TODO, adjust when implementing second part of IGregTileEntity - if (tileentity instanceof MetaTileEntityHolder && !((MetaTileEntityHolder) tileentity).hasTESR()) { + if (tileentity instanceof GTBaseTileEntity && !((GTBaseTileEntity) tileentity).hasTESR()) { return null; } return originalRenderer.call(original, tileentity); diff --git a/src/main/java/gregtech/mixins/minecraft/TileEntityMixin.java b/src/main/java/gregtech/mixins/minecraft/TileEntityMixin.java new file mode 100644 index 00000000000..ce3169539b8 --- /dev/null +++ b/src/main/java/gregtech/mixins/minecraft/TileEntityMixin.java @@ -0,0 +1,59 @@ +package gregtech.mixins.minecraft; + +import gregtech.api.metatileentity.GTBaseTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.api.util.GTUtility; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.sugar.Local; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(TileEntity.class) +public abstract class TileEntityMixin { + + /** + * Fixes the {@link Class#newInstance()} TE call by using nbt tag data to create the correct {@link MetaTileEntity}. + * + * @param instance TileEntity class + * @param original {@link Class#newInstance()} + * @param tagCompound additional data, used for {@link TileEntity#readFromNBT(NBTTagCompound)} + * @return the correct MetaTileEntity, or the result of the original operation + */ + @WrapOperation(method = "create", + at = @At(value = "INVOKE", + target = "Ljava/lang/Class;newInstance()Ljava/lang/Object;")) + private static Object wrapNewInstance(Class instance, + Operation original, + @Local(argsOnly = true) NBTTagCompound tagCompound) { + if (IGregTechTileEntity.class.isAssignableFrom(instance)) { + // this is necessary to avoid the no args constructor call + MetaTileEntity mte = GTUtility.getMetaTileEntity(tagCompound.getString("MetaId")); + if (mte != null) return mte.copy(); + } + return original.call(instance); + } + + /** + * Fixes an issue in {@link TileEntity#writeInternal(NBTTagCompound)} that expects the TE class to be registered. + * However, MetaTileEntities are stored under the {@link GTBaseTileEntity} class. + * + * @param value the TileEntity class + * @return GTBaseTileEntity's class if the class extends from it, otherwise the original class + */ + @ModifyArg(method = "writeInternal", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/util/registry/RegistryNamespaced;getNameForObject(Ljava/lang/Object;)Ljava/lang/Object;")) + public Object fixClass(Object value) { + if (GTBaseTileEntity.class.isAssignableFrom((Class) value)) { + return GTBaseTileEntity.class; + } + return value; + } +} diff --git a/src/main/resources/mixins.gregtech.minecraft.json b/src/main/resources/mixins.gregtech.minecraft.json index 0eb52b8fff7..fff40ef4cb0 100644 --- a/src/main/resources/mixins.gregtech.minecraft.json +++ b/src/main/resources/mixins.gregtech.minecraft.json @@ -10,11 +10,13 @@ "mixins": [ "BlockConcretePowderMixin", "BlockRenderLayerMixin", + "ClientHandlerMixin", "ContainerMixin", "DamageSourceMixin", "EnchantmentCanApplyMixin", "MinecraftMixin", - "RecipeRepairItemMixin" + "RecipeRepairItemMixin", + "TileEntityMixin" ], "client": [ "BlockMixin", diff --git a/src/test/java/gregtech/api/capability/impl/AbstractRecipeLogicTest.java b/src/test/java/gregtech/api/capability/impl/AbstractRecipeLogicTest.java index 182870e78f2..c222be16205 100644 --- a/src/test/java/gregtech/api/capability/impl/AbstractRecipeLogicTest.java +++ b/src/test/java/gregtech/api/capability/impl/AbstractRecipeLogicTest.java @@ -2,7 +2,6 @@ import gregtech.Bootstrap; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; import gregtech.api.recipes.Recipe; import gregtech.api.recipes.RecipeMap; @@ -131,8 +130,8 @@ private static AbstractRecipeLogic createTestLogic(int testRecipeEUt, int testRe map, null, 1, false)); - MetaTileEntity atte = new MetaTileEntityHolder().setMetaTileEntity(at); - ((MetaTileEntityHolder) atte.getHolder()).setWorld(world); + + at.setWorld(world); map.recipeBuilder() .inputs(new ItemStack(Blocks.COBBLESTONE)) .outputs(new ItemStack(Blocks.STONE)) @@ -141,7 +140,7 @@ private static AbstractRecipeLogic createTestLogic(int testRecipeEUt, int testRe TEST_ID++; - AbstractRecipeLogic arl = new AbstractRecipeLogic(atte, map) { + AbstractRecipeLogic arl = new AbstractRecipeLogic(at, map) { @Override protected long getEnergyInputPerSecond() { diff --git a/src/test/java/gregtech/api/capability/impl/EnergyContainerListTest.java b/src/test/java/gregtech/api/capability/impl/EnergyContainerListTest.java index 2ed1ded84e2..9fc89f7c07e 100644 --- a/src/test/java/gregtech/api/capability/impl/EnergyContainerListTest.java +++ b/src/test/java/gregtech/api/capability/impl/EnergyContainerListTest.java @@ -3,7 +3,6 @@ import gregtech.Bootstrap; import gregtech.api.capability.IEnergyContainer; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import net.minecraft.util.ResourceLocation; @@ -28,7 +27,7 @@ public static void prepare() { dummyMTE = new MetaTileEntity(new ResourceLocation(MODID, "dummy")) { @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + public MetaTileEntity copy() { return dummyMTE; } }; diff --git a/src/test/java/gregtech/api/capability/impl/MultiblockRecipeLogicTest.java b/src/test/java/gregtech/api/capability/impl/MultiblockRecipeLogicTest.java index bfda73b5311..89d15dda171 100644 --- a/src/test/java/gregtech/api/capability/impl/MultiblockRecipeLogicTest.java +++ b/src/test/java/gregtech/api/capability/impl/MultiblockRecipeLogicTest.java @@ -2,8 +2,6 @@ import gregtech.Bootstrap; import gregtech.api.capability.IMultipleTankHandler; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -87,24 +85,7 @@ public boolean hasMufflerMechanics() { } }); - // isValid() check in the dirtying logic requires both a metatileentity and a holder - try { - Field field = MetaTileEntity.class.getDeclaredField("holder"); - field.setAccessible(true); - field.set(mbt, new MetaTileEntityHolder()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - try { - Field field = MetaTileEntityHolder.class.getDeclaredField("metaTileEntity"); - field.setAccessible(true); - field.set(mbt.getHolder(), mbt); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - ((MetaTileEntityHolder) mbt.getHolder()).setWorld(world); + mbt.setWorld(world); // Controller and isAttachedToMultiBlock need the world so we fake it here. MetaTileEntityItemBus importItemBus = new MetaTileEntityItemBus(gregtechId("item_bus.export.lv"), 1, false) { @@ -312,24 +293,7 @@ public boolean checkRecipe(@NotNull Recipe recipe, boolean consumeIfSuccess) { } }); - // isValid() check in the dirtying logic requires both a metatileentity and a holder - try { - Field field = MetaTileEntity.class.getDeclaredField("holder"); - field.setAccessible(true); - field.set(mbt, new MetaTileEntityHolder()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - try { - Field field = MetaTileEntityHolder.class.getDeclaredField("metaTileEntity"); - field.setAccessible(true); - field.set(mbt.getHolder(), mbt); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - ((MetaTileEntityHolder) mbt.getHolder()).setWorld(world); + mbt.setWorld(world); // Controller and isAttachedToMultiBlock need the world so we fake it here. MetaTileEntityItemBus importItemBus = new MetaTileEntityItemBus(gregtechId("item_bus.export.lv"), 1, false) { @@ -577,24 +541,7 @@ public List getAbilities(MultiblockAbility ability) { } }); - // isValid() check in the dirtying logic requires both a metatileentity and a holder - try { - Field field = MetaTileEntity.class.getDeclaredField("holder"); - field.setAccessible(true); - field.set(mbt, new MetaTileEntityHolder()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - try { - Field field = MetaTileEntityHolder.class.getDeclaredField("metaTileEntity"); - field.setAccessible(true); - field.set(mbt.getHolder(), mbt); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - ((MetaTileEntityHolder) mbt.getHolder()).setWorld(DummyWorld.INSTANCE); + mbt.setWorld(DummyWorld.INSTANCE); maintenanceHatch.myController = mbt; diff --git a/src/test/java/gregtech/api/recipes/logic/IParallelableRecipeLogicTest.java b/src/test/java/gregtech/api/recipes/logic/IParallelableRecipeLogicTest.java index 6354772d0bd..5a5e7e741f6 100644 --- a/src/test/java/gregtech/api/recipes/logic/IParallelableRecipeLogicTest.java +++ b/src/test/java/gregtech/api/recipes/logic/IParallelableRecipeLogicTest.java @@ -5,7 +5,6 @@ import gregtech.api.capability.impl.FluidTankList; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; import gregtech.api.metatileentity.multiblock.ParallelLogicType; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; @@ -105,25 +104,7 @@ public boolean hasMaintenanceMechanics() { e.printStackTrace(); } - // isValid() check in the dirtying logic requires both a metatileentity and a holder - try { - Field field = MetaTileEntity.class.getDeclaredField("holder"); - field.setAccessible(true); - field.set(mbt, new MetaTileEntityHolder()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - try { - Field field = MetaTileEntityHolder.class.getDeclaredField("metaTileEntity"); - field.setAccessible(true); - field.set(mbt.getHolder(), mbt); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - ((MetaTileEntityHolder) mbt.getHolder()).setWorld(world); - + mbt.setWorld(world); // Controller and isAttachedToMultiBlock need the world so we fake it here. importItemBus = new MetaTileEntityItemBus(gregtechId("item_bus.export.lv"), 1, false) { diff --git a/src/test/java/gregtech/common/metatileentities/storage/QuantumChestTest.java b/src/test/java/gregtech/common/metatileentities/storage/QuantumChestTest.java index 6172b07d901..d1996901c4c 100644 --- a/src/test/java/gregtech/common/metatileentities/storage/QuantumChestTest.java +++ b/src/test/java/gregtech/common/metatileentities/storage/QuantumChestTest.java @@ -8,7 +8,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; @@ -139,7 +138,7 @@ public void Test_Multiple_Insertions() { for (int i = 0; i < 16; i++) { importItems.insertItem(0, GRAVEL.copy(), false); - quantumChest.update(); + quantumChest.updateMTE(); } ItemStack virtualized = itemInventory.getStackInSlot(0); @@ -158,7 +157,7 @@ public void Test_Insertion_And_Update() { IItemHandlerModifiable importItems = quantumChest.getImportItems(); importItems.insertItem(0, GRAVEL.copy(), false); - quantumChest.update(); + quantumChest.updateMTE(); ItemStack stack = importItems.getStackInSlot(0); assertThat(String.format("%s should be Empty!", itemStackToString(stack)), stack.isEmpty()); @@ -166,7 +165,7 @@ public void Test_Insertion_And_Update() { assertThat("Export slot was not filled!", !exportItems.getStackInSlot(0).isEmpty()); importItems.insertItem(0, GRAVEL.copy(), false); - quantumChest.update(); + quantumChest.updateMTE(); assertThat("Virtual stack should not be empty!", !quantumChest.virtualItemStack.isEmpty()); } } @@ -180,7 +179,7 @@ public void Test_Insertion_Near_Full() { insertItem(combinedInventory, GTUtility.copy(toInsert, SAND), false); int remainder = insertItem(quantumChest.getImportItems(), SAND.copy(), true).getCount(); - quantumChest.update(); + quantumChest.updateMTE(); String reason = String.format("Remainder should be exactly %d, but was %d!", 32, remainder); assertThat(reason, remainder, is(32)); } @@ -225,7 +224,7 @@ public void Test_Extraction() { assertThat(reason, extractedCount, is(expected)); quantumChest.getExportItems().extractItem(0, 64, false); - quantumChest.update(); + quantumChest.updateMTE(); extractedCount = quantumChest.getItemInventory().getStackInSlot(0).getCount(); expected = 128; @@ -268,16 +267,12 @@ private static class QuantumChestWrapper extends MetaTileEntityQuantumChest { public QuantumChestWrapper(ResourceLocation metaTileEntityId, int tier, long maxStoredItems) { super(metaTileEntityId, tier, maxStoredItems); + setWorld(DummyWorld.INSTANCE); } @Override protected void setVoiding(boolean isVoiding) { this.voiding = isVoiding; } - - @Override - public World getWorld() { - return DummyWorld.INSTANCE; - } } }