Skip to content

Commit

Permalink
Refactored Superconductors to be non-tickable cable-only.
Browse files Browse the repository at this point in the history
Closes #144
  • Loading branch information
TheDarkDnKTv committed May 7, 2022
1 parent f581e98 commit 45341cc
Show file tree
Hide file tree
Showing 8 changed files with 284 additions and 224 deletions.
8 changes: 2 additions & 6 deletions src/main/java/gregtechmod/GT_Mod.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,7 @@
import gregtechmod.common.network.GT_NetworkHandler;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.common.render.GT_Block_Renderer;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_ComputerCube;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_LightSource;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_PlayerDetector;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Sonictron;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Superconductor;
import gregtechmod.common.tileentities.deprecated.*;

import gregtechmod.integration.crafttweaker.GregTechTweaker;
import gregtechmod.loaders.load.GT_CoverBehaviorLoader;
Expand Down Expand Up @@ -462,7 +458,7 @@ public void preload(FMLPreInitializationEvent aEvent) {
GT_Log.log.info("Register the few old TileEntities.");
GameRegistry.registerTileEntity(GT_TileEntity_ComputerCube.class , "GregTech_Computercube");
GameRegistry.registerTileEntity(GT_TileEntity_Sonictron.class , "Sonictron");
GameRegistry.registerTileEntity(GT_TileEntity_Superconductor.class , "Superconductorwire");
GameRegistry.registerTileEntity(TileEntitySuperconductor.class , "Superconductorwire");
GameRegistry.registerTileEntity(GT_TileEntity_PlayerDetector.class , "Playerdetector");
GameRegistry.registerTileEntity(GT_TileEntity_LightSource.class , "GT_LightSource");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* It can cause Problems to include this Interface!
*/
public interface IGregTechTileEntity extends IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable {
public interface IGregTechTileEntity extends IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable, ITexturesTileEntity {
/**
* gets the Error displayed on the GUI
*/
Expand Down Expand Up @@ -80,7 +80,7 @@ public interface IGregTechTileEntity extends IGearEnergyTileEntity, ICoverable,

/**
* Sets initial Values from NBT
* @param tNBT is the NBTTag of readFromNBT
* @param aNBT is the NBTTag of readFromNBT
* @param aID is the MetaTileEntityID
*/
public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID);
Expand Down Expand Up @@ -108,6 +108,4 @@ public interface IGregTechTileEntity extends IGearEnergyTileEntity, ICoverable,
public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3);

public float getBlastResistance(byte aSide);
public int getTextureIndex(byte aSide, byte aMeta);
public IIcon getTextureIcon(byte aSide, byte aMeta);
}
10 changes: 10 additions & 0 deletions src/main/java/gregtechmod/api/interfaces/ITexturesTileEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package gregtechmod.api.interfaces;

import net.minecraft.util.IIcon;

public interface ITexturesTileEntity {

int getTextureIndex(byte aSide, byte aMeta);

IIcon getTextureIcon(byte aSide, byte aMeta);
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ private final void clearNullMarkersFromTileEntityBuffer() {
}
}
}

public void onPlaced() {}
public void onRemoved() {}

@Override public final World getWorld () {return worldObj;}
@Override public final int getXCoord() {return xCoord;}
Expand Down
72 changes: 47 additions & 25 deletions src/main/java/gregtechmod/common/blocks/GT_BlockMetaID_Machine.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
package gregtechmod.common.blocks;

import gregtechmod.api.GregTech_API;
import gregtechmod.api.interfaces.ICoverable;
import gregtechmod.api.interfaces.IDebugableBlock;
import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.interfaces.IMetaTileEntity;
import gregtechmod.api.interfaces.*;
import gregtechmod.api.metatileentity.BaseMetaPipeEntity;
import gregtechmod.api.metatileentity.BaseMetaTileEntity;
import gregtechmod.api.metatileentity.BaseTileEntity;
import gregtechmod.api.util.GT_Config;
import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.GT_FluidRegistry;
import gregtechmod.common.items.GT_MetaItem_Component;
import gregtechmod.common.render.GT_Block_Renderer;
import gregtechmod.common.tileentities.deprecated.GT_TileEntityMetaID_Machine;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_ComputerCube;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_PlayerDetector;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Sonictron;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Superconductor;
import gregtechmod.common.tileentities.deprecated.*;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -579,9 +573,18 @@ public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSi
} else {
if (tTileEntity instanceof GT_TileEntityMetaID_Machine) {
tIndex = ((GT_TileEntityMetaID_Machine)tTileEntity).getTexture(aSide, tMeta);
} else if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity)tTileEntity).getMetaTileEntity() != null) {
rIcon = ((IGregTechTileEntity)tTileEntity).getTextureIcon((byte)aSide, tMeta);
if (rIcon == null) tIndex = ((IGregTechTileEntity)tTileEntity).getTextureIndex((byte)aSide, tMeta);
} else if (tTileEntity instanceof IGregTechTileEntity) {
IGregTechTileEntity gregTechTileEntity = (IGregTechTileEntity) tTileEntity;
if (gregTechTileEntity.getMetaTileEntity() != null) {
rIcon = gregTechTileEntity.getTextureIcon((byte)aSide, tMeta);
if (rIcon == null) tIndex = gregTechTileEntity.getTextureIndex((byte)aSide, tMeta);
} else {
tIndex = -2;
}
} else if (tTileEntity instanceof ITexturesTileEntity) {
ITexturesTileEntity textureTe = (ITexturesTileEntity) tTileEntity;
rIcon = textureTe.getTextureIcon((byte)aSide, tMeta);
if (rIcon == null) tIndex = textureTe.getTextureIndex((byte)aSide, tMeta);
} else {
tIndex = -2;
}
Expand Down Expand Up @@ -609,7 +612,9 @@ public IIcon getIcon(int aSide, int aMeta) {
int tIndex = -1;

try {
if (aMeta > 0 && aMeta < 16) {
if (aMeta == 12) {
tIndex = 103;
} else if (aMeta > 0 && aMeta < 16) {
tIndex = ((GT_TileEntityMetaID_Machine)createTileEntity(null, aMeta)).getTexture(aSide, aMeta);
} else if (GregTech_API.mMetaTileList[aMeta] != null) {
rIcon = GregTech_API.mMetaTileList[aMeta].getTextureIcon((byte)aSide, (byte)4, true, false);
Expand Down Expand Up @@ -663,8 +668,6 @@ public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlay
return machine.isUseableByPlayer(aPlayer) ? machine.onRightclick(aPlayer, (byte)aSide, par1, par2, par3) : false;
}
}

return true;
}

return false;
Expand Down Expand Up @@ -782,13 +785,18 @@ public int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, i
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) {
TileEntity tTileEntity = world.getTileEntity(x, y, z);

if (GregTech_API.sMachineNonWrenchExplosions && tTileEntity != null && (player == null || !player.capabilities.isCreativeMode))
if (tTileEntity instanceof GT_TileEntityMetaID_Machine)
((GT_TileEntityMetaID_Machine)tTileEntity).doEnergyExplosion();
else
if (tTileEntity instanceof BaseMetaTileEntity)
((BaseMetaTileEntity)tTileEntity).doEnergyExplosion();
if (tTileEntity != null) {
if (tTileEntity instanceof BaseTileEntity) {
((BaseTileEntity) tTileEntity).onRemoved();
}

if (GregTech_API.sMachineNonWrenchExplosions && (player == null || !player.capabilities.isCreativeMode)) {
if (tTileEntity instanceof GT_TileEntityMetaID_Machine)
((GT_TileEntityMetaID_Machine) tTileEntity).doEnergyExplosion();
else if (tTileEntity instanceof BaseMetaTileEntity)
((BaseMetaTileEntity) tTileEntity).doEnergyExplosion();
}
}

return world.setBlock(x, y, z, Blocks.air, 0, 3);
}
Expand Down Expand Up @@ -884,12 +892,12 @@ public TileEntity createNewTileEntity(World aWorld, int meta) {
public TileEntity createTileEntity(World aWorld, int aMeta) {
switch(aMeta) {
case 0: return GregTech_API.constructBaseMetaTileEntity();
case 1: return new BaseMetaPipeEntity();
case 2: return new BaseMetaPipeEntity();
case 1:
case 2:
case 3: return new BaseMetaPipeEntity();
case 4: return new GT_TileEntity_ComputerCube();
case 6: return new GT_TileEntity_Sonictron();
case 12: return new GT_TileEntity_Superconductor();
case 12: return new TileEntitySuperconductor();
case 13: return new GT_TileEntity_PlayerDetector();
default: return null;
}
Expand Down Expand Up @@ -948,6 +956,11 @@ public void onBlockPlacedBy(World aWorld, int aX, int aY, int aZ, EntityLivingBa

@Override
public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
TileEntity te = aWorld.getTileEntity(aX, aY, aZ);
if (te != null && te instanceof BaseTileEntity) {
((BaseTileEntity) te).onPlaced();
}

if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
}
Expand Down Expand Up @@ -1013,4 +1026,13 @@ public int getFireSpreadSpeed(IBlockAccess aWorld, int aX, int aY, int aZ, Forge
public boolean isFireSource(World aWorld, int aX, int aY, int aZ, ForgeDirection side) {
return GregTech_API.sMachineFlammable && aWorld.getBlockMetadata(aX, aY, aZ) == 0;
}

@Override
public void onNeighborChange(IBlockAccess world, int x, int y, int z, int tileX, int tileY, int tileZ) {
super.onNeighborChange(world, x, y, z, tileX, tileY, tileZ);
TileEntity entity = world.getTileEntity(x, y, z);
if (entity != null && entity instanceof BaseTileEntity) {
((BaseTileEntity) entity).onAdjacentBlockChange(tileX, tileY, tileZ);
}
}
}

This file was deleted.

Loading

0 comments on commit 45341cc

Please sign in to comment.