aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java34
-rw-r--r--src/main/java/gregtech/api/fluid/FluidTankGT.java19
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java2
-rw-r--r--src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java183
-rw-r--r--src/main/java/gregtech/api/logic/ModelRenderLogic.java5
-rw-r--r--src/main/java/gregtech/api/logic/PowerLogic.java15
-rw-r--r--src/main/java/gregtech/api/logic/interfaces/ModelRenderLogicHost.java10
-rw-r--r--src/main/java/gregtech/api/logic/interfaces/PowerLogicHost.java4
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseTileEntity.java3
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java9
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java47
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java49
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java28
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java273
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java3
-rw-r--r--src/main/java/gregtech/api/multitileentity/enums/GT_MultiTileCasing.java7
-rw-r--r--src/main/java/gregtech/api/multitileentity/enums/GT_MultiTileComponentCasing.java130
-rw-r--r--src/main/java/gregtech/api/multitileentity/enums/GT_MultiTileMachine.java6
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java10
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockFluidHandler.java6
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java300
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/ComplexParallelController.java244
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java (renamed from src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java)626
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java301
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPowerController.java44
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java89
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/StackableController.java (renamed from src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java)2
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/casing/FunctionalCasing.java2
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java4
-rw-r--r--src/main/java/gregtech/api/util/GT_ParallelHelper.java193
-rw-r--r--src/main/java/gregtech/api/util/GT_Waila.java4
32 files changed, 2118 insertions, 536 deletions
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index a6a7d6d45c..8406018707 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -307,7 +307,7 @@ public class GT_Values {
TANK_CAPACITY = "gt.tankcap", // Number
TANK_IN = "gt.tank.in.", // FluidStack
TANK_OUT = "gt.tank.out.", // FluidStack
- TEXTURE = "gt.texture", // String
+ TEXTURE_FOLDER = "gt.texture.folder", // String
INV_INPUT_SIZE = "gt.invsize.in", // Number
INV_OUTPUT_SIZE = "gt.invsize.out", // Number
INV_INPUT_LIST = "gt.invlist.in", // NBT List
@@ -326,22 +326,34 @@ public class GT_Values {
TARGET_X = "gt.target.x", // Number
TARGET_Y = "gt.target.y", // Number
TARGET_Z = "gt.target.z", // Number
- LOCKED_INVENTORY = "gt.locked.inventory", // String
- LOCKED_INVENTORY_INDEX = "gt.locked.inventory.index", // Number
+ LOCKED_FLUID = "gt.locked.fluid", // String
+ LOCKED_INVENTORY = "gt.locked.inv", // String
+ LOCKED_INVENTORY_INDEX = "gt.locked.inv.index", // Number
UPGRADE_INVENTORY_SIZE = "gt.invsize.upg", // String
UPGRADE_INVENTORY_UUID = "gt.invuuid.upg", // String
UPGRADE_INVENTORY_NAME = "gt.invname.upg", // String
UPGRADE_INVENTORIES_INPUT = "gt.invlist.upg.in", // NBT List
UPGRADE_INVENTORIES_OUTPUT = "gt.invlist.upg.out", // NBT List
+ UPGRADE_TANK_CAPACITY = "gt.tank.cap.upg", // Long
+ UPGRADE_TANK_CAPACITY_MULTIPLIER = "gt.tank.cap.mult.upg", // Long
+ UPGRADE_TANK_UUID = "gt.tankuuid.upg", // String
+ UPGRADE_TANK_NAME = "gt.tankname.upg", // String
+ UPGRADE_TANKS_INPUT = "gt.tanklist.upg.in", // NBT List
+ UPGRADE_TANKS_OUTPUT = "gt.tanklist.upg.out", // NBT List
+ UPGRADE_TANKS_COUNT = "gt.tankcount.upg", // Int
+ UPGRADE_TANKS_PREFIX = "gt.tank.upg", // NBT Tag
SEPARATE_INPUTS = "gt.separate.inputs", // Boolean
+ VOID_EXCESS = "gt.void.excess", // Boolean
+ BATCH_MODE = "gt.batch.mode", // Boolean
+ RECIPE_LOCK = "gt.recipe.lock", // Boolean
// Logic
- POWER_LOGIC = "gt.power.logic", // NBT Tag
- POWER_LOGIC_STORED_ENERGY = "gt.power.logic.stored.energy", // Number
- POWER_LOGIC_ENERGY_CAPACITY = "gt.power.logic.energy.capacity", // Number
- POWER_LOGIC_VOLTAGE = "gt.power.logic.voltage", // Number
- POWER_LOGIC_AMPERAGE = "gt.power.logic.voltage", // Number
- POWER_LOGIC_TYPE = "gt.power.logic.type", // Number
+ POWER_LOGIC = "gt.pow.logic", // NBT Tag
+ POWER_LOGIC_STORED_ENERGY = "gt.pow.energy", // Number
+ POWER_LOGIC_ENERGY_CAPACITY = "gt.pow.energy.cap", // Number
+ POWER_LOGIC_VOLTAGE = "gt.pow.volt", // Number
+ POWER_LOGIC_AMPERAGE = "gt.pow.amp", // Number
+ POWER_LOGIC_TYPE = "gt.pow.type", // Number
empty_ = "";
}
@@ -588,6 +600,10 @@ public class GT_Values {
+ EnumChatFormatting.BOLD
+ "Weabo";
+ public static final String Authorminecraft7771 = "Author: " + EnumChatFormatting.BLUE
+ + EnumChatFormatting.LIGHT_PURPLE
+ + "minecraft7771";
+
// 7.5F comes from GT_Tool_Turbine_Large#getBaseDamage() given huge turbines are the most efficient now.
public static double getMaxPlasmaTurbineEfficiencyFromMaterial(Materials material) {
return (5F + (7.5F + material.mToolQuality)) / 10.0;
diff --git a/src/main/java/gregtech/api/fluid/FluidTankGT.java b/src/main/java/gregtech/api/fluid/FluidTankGT.java
index 801354ac86..2102f725ae 100644
--- a/src/main/java/gregtech/api/fluid/FluidTankGT.java
+++ b/src/main/java/gregtech/api/fluid/FluidTankGT.java
@@ -2,6 +2,8 @@ package gregtech.api.fluid;
import static com.google.common.primitives.Ints.saturatedCast;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import net.minecraft.nbt.NBTTagCompound;
@@ -446,8 +448,25 @@ public class FluidTankGT implements IFluidTank {
return saturatedCast(capacity());
}
+ public long getCapacityMultiplier() {
+ return mAdjustableMultiplier;
+ }
+
@Override
public FluidTankInfo getInfo() {
return new FluidTankInfo(isEmpty() ? null : mFluid.copy(), saturatedCast(capacity()));
}
+
+ public static FluidStack[] getFluidsFromTanks(FluidTankGT[] tanks) {
+ if (tanks == null) {
+ return null;
+ }
+ List<FluidStack> fluidStacks = new ArrayList<>();
+ for (FluidTankGT tank : tanks) {
+ if (tank.getFluid() != null) {
+ fluidStacks.add(tank.getFluid());
+ }
+ }
+ return fluidStacks.toArray(new FluidStack[0]);
+ }
}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
index 14ead4e4ee..55de2db088 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
@@ -73,7 +73,7 @@ public interface IEnergyConnected extends IColoredTileEntity {
final TileEntity tTileEntity = emitterTile.getTileEntityAtSide(i);
if (tTileEntity instanceof PowerLogicHost host) {
- PowerLogic logic = host.getPowerLogic(j);
+ PowerLogic logic = host.getPowerLogic(ForgeDirection.getOrientation(j));
if (logic == null || logic.isEnergyReceiver()) {
continue;
}
diff --git a/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java b/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java
new file mode 100644
index 0000000000..d38a3d98fd
--- /dev/null
+++ b/src/main/java/gregtech/api/logic/ComplexParallelProcessingLogic.java
@@ -0,0 +1,183 @@
+package gregtech.api.logic;
+
+import java.util.stream.LongStream;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.multitileentity.multiblock.base.Controller;
+import gregtech.api.util.GT_OverclockCalculator;
+import gregtech.api.util.GT_ParallelHelper;
+import gregtech.api.util.GT_Recipe;
+
+public class ComplexParallelProcessingLogic {
+
+ protected Controller<?> tileEntity;
+ protected GT_Recipe.GT_Recipe_Map recipeMap;
+ protected boolean hasPerfectOverclock;
+ protected final int maxComplexParallels;
+ protected final ItemStack[][] outputItems;
+ protected final ItemStack[][] inputItems;
+ protected final FluidStack[][] inputFluids;
+ protected final FluidStack[][] outputFluids;
+ protected final long[] availableEut;
+ protected final long[] eut;
+ protected final long[] durations;
+ protected boolean[] isVoidProtected;
+
+ public ComplexParallelProcessingLogic(int maxComplexParallels) {
+ this(null, maxComplexParallels);
+ }
+
+ public ComplexParallelProcessingLogic(GT_Recipe.GT_Recipe_Map recipeMap, int maxComplexParallels) {
+ this.maxComplexParallels = maxComplexParallels;
+ this.recipeMap = recipeMap;
+ inputItems = new ItemStack[maxComplexParallels][];
+ outputItems = new ItemStack[maxComplexParallels][];
+ inputFluids = new FluidStack[maxComplexParallels][];
+ outputFluids = new FluidStack[maxComplexParallels][];
+ eut = new long[maxComplexParallels];
+ availableEut = new long[maxComplexParallels];
+ durations = new long[maxComplexParallels];
+ isVoidProtected = new boolean[maxComplexParallels];
+ }
+
+ public ComplexParallelProcessingLogic setRecipeMap(GT_Recipe.GT_Recipe_Map recipeMap) {
+ this.recipeMap = recipeMap;
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setInputItems(int index, ItemStack... itemInputs) {
+ if (index >= 0 && index < maxComplexParallels) {
+ inputItems[index] = itemInputs;
+ }
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setInputFluids(int index, FluidStack... inputFluids) {
+ if (index >= 0 && index < maxComplexParallels) {
+ this.inputFluids[index] = inputFluids;
+ }
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setTileEntity(Controller<?> tileEntity) {
+ this.tileEntity = tileEntity;
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setEut(int index, long eut) {
+ if (index >= 0 && index < maxComplexParallels) {
+ availableEut[index] = eut;
+ }
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setVoidProtection(int index, boolean shouldVoidProtect) {
+ if (index >= 0 && index < maxComplexParallels) {
+ isVoidProtected[index] = shouldVoidProtect;
+ }
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic setPerfectOverclock(boolean shouldOverclockPerfectly) {
+ this.hasPerfectOverclock = shouldOverclockPerfectly;
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic clear() {
+ for (int i = 0; i < maxComplexParallels; i++) {
+ outputItems[i] = null;
+ outputFluids[i] = null;
+ durations[i] = 0;
+ eut[i] = 0;
+ }
+ return this;
+ }
+
+ public ComplexParallelProcessingLogic clear(int index) {
+ if (index >= 0 && index < maxComplexParallels) {
+ inputItems[index] = null;
+ inputFluids[index] = null;
+ outputItems[index] = null;
+ outputFluids[index] = null;
+ durations[index] = 0;
+ availableEut[index] = 0;
+ eut[index] = 0;
+ }
+ return this;
+ }
+
+ public boolean process(int index) {
+ if (recipeMap == null) {
+ return false;
+ }
+ GT_Recipe recipe = recipeMap
+ .findRecipe(tileEntity, false, false, availableEut[index], inputFluids[index], inputItems[index]);
+ if (recipe == null) {
+ return false;
+ }
+
+ GT_ParallelHelper helper = new GT_ParallelHelper().setRecipe(recipe)
+ .setItemInputs(inputItems[index])
+ .setFluidInputs(inputFluids[index])
+ .setAvailableEUt(availableEut[index])
+ .enableConsumption()
+ .enableOutputCalculation();
+
+ if (isVoidProtected[index]) {
+ helper.enableVoidProtection(tileEntity);
+ }
+
+ helper.build();
+
+ if (helper.getCurrentParallel() <= 0) {
+ return false;
+ }
+
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(recipe.mEUt)
+ .setDuration(recipe.mDuration)
+ .setEUt(availableEut[index]);
+
+ if (hasPerfectOverclock) {
+ calculator.enablePerfectOC();
+ }
+
+ if (calculator.getConsumption() == Long.MAX_VALUE - 1 || calculator.getDuration() == Integer.MAX_VALUE - 1) {
+ return false;
+ }
+
+ durations[index] = calculator.getDuration();
+ eut[index] = calculator.getConsumption();
+ outputItems[index] = helper.getItemOutputs();
+ outputFluids[index] = helper.getFluidOutputs();
+
+ return true;
+ }
+
+ public long getDuration(int index) {
+ if (index >= 0 && index < maxComplexParallels) {
+ return durations[index];
+ }
+ return 0;
+ }
+
+ public long getTotalEU() {
+ return LongStream.of(eut)
+ .sum();
+ }
+
+ public ItemStack[] getOutputItems(int index) {
+ if (index >= 0 && index < maxComplexParallels) {
+ return outputItems[index];
+ }
+ return null;
+ }
+
+ public FluidStack[] getOutputFluids(int index) {
+ if (index >= 0 && index < maxComplexParallels) {
+ return outputFluids[index];
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/gregtech/api/logic/ModelRenderLogic.java b/src/main/java/gregtech/api/logic/ModelRenderLogic.java
new file mode 100644
index 0000000000..d9f2fdcf27
--- /dev/null
+++ b/src/main/java/gregtech/api/logic/ModelRenderLogic.java
@@ -0,0 +1,5 @@
+package gregtech.api.logic;
+
+public abstract class ModelRenderLogic {
+
+}
diff --git a/src/main/java/gregtech/api/logic/PowerLogic.java b/src/main/java/gregtech/api/logic/PowerLogic.java
index 8044a2f979..ac12ef8917 100644
--- a/src/main/java/gregtech/api/logic/PowerLogic.java
+++ b/src/main/java/gregtech/api/logic/PowerLogic.java
@@ -15,6 +15,7 @@ public class PowerLogic {
private long voltage = 0;
private long amperage = 0;
private int type = 0;
+ private boolean canUseLaser = false;
public PowerLogic() {}
@@ -38,6 +39,16 @@ public class PowerLogic {
return this;
}
+ public PowerLogic disableLaser() {
+ canUseLaser = false;
+ return this;
+ }
+
+ public PowerLogic enableLaser() {
+ canUseLaser = true;
+ return this;
+ }
+
public boolean addEnergyUnsafe(long totalEUAdded) {
if (storedEnergy + totalEUAdded >= energyCapacity) {
return false;
@@ -127,4 +138,8 @@ public class PowerLogic {
voltage = powerLogic.getLong(NBT.POWER_LOGIC_VOLTAGE);
type = powerLogic.getInteger(NBT.POWER_LOGIC_TYPE);
}
+
+ public boolean canUseLaser() {
+ return canUseLaser;
+ }
}
diff --git a/src/main/java/gregtech/api/logic/interfaces/ModelRenderLogicHost.java b/src/main/java/gregtech/api/logic/interfaces/ModelRenderLogicHost.java
new file mode 100644
index 0000000000..9a0afaa539
--- /dev/null
+++ b/src/main/java/gregtech/api/logic/interfaces/ModelRenderLogicHost.java
@@ -0,0 +1,10 @@
+package gregtech.api.logic.interfaces;
+
+import gregtech.api.logic.ModelRenderLogic;
+
+public interface ModelRenderLogicHost {
+
+ ModelRenderLogic getRenderLogic();
+
+ boolean shouldRenderModel();
+}
diff --git a/src/main/java/gregtech/api/logic/interfaces/PowerLogicHost.java b/src/main/java/gregtech/api/logic/interfaces/PowerLogicHost.java
index 8e504674aa..1a66e5fe83 100644
--- a/src/main/java/gregtech/api/logic/interfaces/PowerLogicHost.java
+++ b/src/main/java/gregtech/api/logic/interfaces/PowerLogicHost.java
@@ -1,10 +1,12 @@
package gregtech.api.logic.interfaces;
+import net.minecraftforge.common.util.ForgeDirection;
+
import gregtech.api.logic.PowerLogic;
public interface PowerLogicHost {
- PowerLogic getPowerLogic(byte side);
+ PowerLogic getPowerLogic(ForgeDirection facing);
default boolean isEnergyReceiver() {
return false;
diff --git a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java
index a73481d89f..2b9894a616 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java
@@ -172,6 +172,9 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje
@Override
public final boolean isServerSide() {
+ if (worldObj == null) {
+ return false;
+ }
return !worldObj.isRemote;
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
index 132c48e77d..122a5f5128 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
@@ -35,6 +35,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntityCable;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IEnergyConnected;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.logic.interfaces.PowerLogicHost;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_Cover_None;
@@ -336,8 +337,12 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
final ForgeDirection tDir = ForgeDirection.getOrientation(tSide);
// GT Machine handling
- if ((tTileEntity instanceof IEnergyConnected) && (((IEnergyConnected) tTileEntity).inputEnergyFrom(tSide, false)
- || ((IEnergyConnected) tTileEntity).outputsEnergyTo(tSide, false))) return true;
+ if ((tTileEntity instanceof PowerLogicHost
+ && ((PowerLogicHost) tTileEntity).getPowerLogic(ForgeDirection.getOrientation(aSide)) != null)
+ || ((tTileEntity instanceof IEnergyConnected)
+ && (((IEnergyConnected) tTileEntity).inputEnergyFrom(tSide, false)
+ || ((IEnergyConnected) tTileEntity).outputsEnergyTo(tSide, false))))
+ return true;
// Solar Panel Compat
if (coverBehavior instanceof GT_Cover_SolarPanel) return true;
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
index 55edf332bd..b81961af95 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
@@ -50,7 +50,6 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IDebugableBlock;
-import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IDebugableTileEntity;
import gregtech.api.metatileentity.BaseTileEntity;
import gregtech.api.metatileentity.CoverableTileEntity;
@@ -69,15 +68,13 @@ import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Util;
import gregtech.api.util.GT_Utility;
import gregtech.common.covers.CoverInfo;
-import gregtech.common.render.GT_Renderer_Block;
-import gregtech.common.render.IRenderedBlock;
+import gregtech.common.render.GT_MultiTile_Renderer;
/*
* MultiTileEntityBlock ported from GT6
*/
@Optional.Interface(iface = "com.cricketcraft.chisel.api.IFacade", modid = "ChiselAPI")
-public class MultiTileEntityBlock extends Block
- implements IDebugableBlock, ITileEntityProvider, IRenderedBlock, IFacade {
+public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITileEntityProvider, IFacade {
protected static final Map<String, MultiTileEntityBlock> MULTI_BLOCK_MAP = new HashMap<>();
private static boolean LOCK = false;
@@ -219,7 +216,8 @@ public class MultiTileEntityBlock extends Block
@Override
public int getRenderType() {
- return GT_Renderer_Block.INSTANCE == null ? super.getRenderType() : GT_Renderer_Block.INSTANCE.mRenderID;
+ return GT_MultiTile_Renderer.INSTANCE == null ? super.getRenderType()
+ : GT_MultiTile_Renderer.INSTANCE.getRenderId();
}
@Override
@@ -387,43 +385,6 @@ public class MultiTileEntityBlock extends Block
}
@Override
- public ITexture[] getTexture(Block aBlock, byte aSide, int aRenderPass, boolean[] aShouldSideBeRendered) {
- return null;
- }
-
- @Override
- public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
- // TODO: MTE(Texture)
- return null;
- }
-
- @Override
- public int getRenderPasses(Block aBlock) {
- return 0;
- }
-
- @Override
- public boolean usesRenderPass(int aRenderPass) {
- return true;
- }
-
- @Override
- public boolean setBlockBounds(Block aBlock, int aRenderPass) {
- return false;
- }
-
- @Override
- public IRenderedBlock passRenderingToObject(ItemStack aStack) {
- return null;
- }
-
- @Override
- public IRenderedBlock passRenderingToObject(IBlockAccess aWorld, int aX, int aY, int aZ) {
- final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return tTileEntity instanceof IRenderedBlock ? (IRenderedBlock) tTileEntity : null;
- }
-
- @Override
public final boolean shouldSideBeRendered(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX - OFFX[aSide], aY - OFFY[aSide], aZ - OFFZ[aSide]);
return aTileEntity instanceof IMultiTileEntity
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
index ec24654a1c..a3637e4626 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
@@ -7,21 +7,16 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
-import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StatCollector;
-import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import gregtech.api.GregTech_API;
-import gregtech.api.interfaces.ITexture;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity.IMTE_HasMultiBlockMachineRelevantData;
-import gregtech.common.render.GT_Renderer_Block;
-import gregtech.common.render.IRenderedBlock;
+import gregtech.common.render.GT_MultiTile_Renderer;
-public class MultiTileEntityBlockInternal extends Block implements IRenderedBlock {
+public class MultiTileEntityBlockInternal extends Block {
public MultiTileEntityRegistry mMultiTileEntityRegistry;
@@ -36,7 +31,8 @@ public class MultiTileEntityBlockInternal extends Block implements IRenderedBloc
@Override
public int getRenderType() {
- return GT_Renderer_Block.INSTANCE == null ? super.getRenderType() : GT_Renderer_Block.INSTANCE.mRenderID;
+ return GT_MultiTile_Renderer.INSTANCE == null ? super.getRenderType()
+ : GT_MultiTile_Renderer.INSTANCE.getRenderId();
}
@Override
@@ -115,40 +111,7 @@ public class MultiTileEntityBlockInternal extends Block implements IRenderedBloc
return true;
}
- @Override
- public ITexture[] getTexture(Block aBlock, byte aSide, int aRenderPass, boolean[] aShouldSideBeRendered) {
- return null;
- }
-
- @Override
- public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
- // TODO: MTE(Texture)
- return null;
- }
-
- @Override
- public int getRenderPasses(Block aBlock) {
- return 0;
- }
-
- @Override
- public boolean usesRenderPass(int aRenderPass) {
- return true;
- }
-
- @Override
- public boolean setBlockBounds(Block aBlock, int aRenderPass) {
- return false;
- }
-
- @Override
- public IRenderedBlock passRenderingToObject(ItemStack aStack) {
- final TileEntity tTileEntity = mMultiTileEntityRegistry.getNewTileEntity(aStack);
- return tTileEntity instanceof IRenderedBlock ? (IRenderedBlock) tTileEntity : null;
- }
-
- @Override
- public IRenderedBlock passRenderingToObject(IBlockAccess aWorld, int aX, int aY, int aZ) {
- return null;
+ public MultiTileEntityRegistry getRegistry() {
+ return mMultiTileEntityRegistry;
}
}
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
index 4e4be793b1..3eae75f934 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
@@ -12,7 +12,7 @@ import gregtech.api.multitileentity.base.MultiTileEntity;
import gregtech.api.multitileentity.multiblock.casing.FunctionalCasing;
import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
import gregtech.api.util.GT_Util;
-import gregtech.common.tileentities.casings.upgrade.InventoryUpgrade;
+import gregtech.common.tileentities.casings.upgrade.Inventory;
public class MultiTileEntityClassContainer {
@@ -94,25 +94,25 @@ public class MultiTileEntityClassContainer {