cable connector model, a lot of energy net fixes

This commit is contained in:
Bob 2021-12-02 22:46:03 +01:00
parent 9ba3dbb792
commit 1b18c5d810
47 changed files with 503 additions and 174 deletions

View File

@ -1,5 +1,6 @@
package api.hbm.energy;
import com.hbm.blocks.ModBlocks;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
@ -51,15 +52,17 @@ public interface IEnergyConnector {
* @param y
* @param z
*/
public default void trySubscribe(World world, int x, int y, int z) {
public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = world.getTileEntity(x, y, z);
boolean red = false;
if(te instanceof IEnergyConductor) {
IEnergyConductor con = (IEnergyConductor) te;
if(!con.canConnect(dir.getOpposite().getOpposite()))
return;
if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this))
con.getPowerNet().subscribe(this);
@ -67,11 +70,14 @@ public interface IEnergyConnector {
red = true;
}
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "vanillaExt");
data.setString("mode", red ? "reddust" : "bluedust");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25));
if(particleDebug) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "vanillaExt");
data.setString("mode", red ? "reddust" : "bluedust");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25));
}
}
public default void tryUnsubscribe(World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
@ -83,4 +89,6 @@ public interface IEnergyConnector {
con.getPowerNet().unsubscribe(this);
}
}
public static final boolean particleDebug = false;
}

View File

@ -68,7 +68,7 @@ public interface IEnergyUser extends IEnergyConnector {
if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te;
if(con.canConnect(dir)) {
if(con.canConnect(dir.getOpposite())) {
long oldPower = this.getPower();
long transfer = oldPower - con.transferPower(oldPower);
this.setPower(oldPower - transfer);
@ -85,15 +85,17 @@ public interface IEnergyUser extends IEnergyConnector {
}
}
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "vanillaExt");
data.setString("mode", red ? "reddust" : "greendust");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25));
if(particleDebug) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "vanillaExt");
data.setString("mode", red ? "reddust" : "greendust");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25));
}
}
public default void updateStandardConnections(World world, int x, int y, int z) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
this.trySubscribe(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir);
}
}

View File

@ -1,15 +1,11 @@
package com.hbm.blocks.network;
import java.util.List;
import com.hbm.blocks.test.TestConductor;
import com.hbm.lib.Library;
import com.hbm.tileentity.network.TileEntityCableBaseNT;
import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
@ -44,12 +40,12 @@ public class BlockCable extends BlockContainer {
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z);
boolean posX = Library.canConnect(world, x + 1, y, z, Library.NEG_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.POS_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.POS_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z);
setBlockBounds(posX, negX, posY, negY, posZ, negZ);
@ -59,12 +55,12 @@ public class BlockCable extends BlockContainer {
@Override
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z);
boolean posX = Library.canConnect(world, x + 1, y, z, Library.NEG_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.POS_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.POS_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z);
setBlockBounds(posX, negX, posY, negY, posZ, negZ);
}

View File

@ -1,10 +1,14 @@
package com.hbm.blocks.network;
import com.hbm.lib.Library;
import com.hbm.tileentity.network.TileEntityConnector;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ConnectorRedWire extends PylonBase {
@ -21,4 +25,33 @@ public class ConnectorRedWire extends PylonBase {
public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) {
return side;
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
setBlockBounds(world.getBlockMetadata(x, y, z));
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
setBlockBounds(world.getBlockMetadata(x, y, z));
}
private void setBlockBounds(int meta) {
float pixel = 0.0625F;
float min = pixel * 5F;
float max = pixel * 11F;
ForgeDirection dir = ForgeDirection.getOrientation(meta).getOpposite();
float minX = dir == Library.NEG_X ? 0F : min;
float maxX = dir == Library.POS_X ? 1F : max;
float minY = dir == Library.NEG_Y ? 0F : min;
float maxY = dir == Library.POS_Y ? 1F : max;
float minZ = dir == Library.NEG_Z ? 0F : min;
float maxZ = dir == Library.POS_Z ? 1F : max;
this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ);
}
}

View File

@ -9,9 +9,12 @@ import com.hbm.world.dungeon.Bunker;
import com.hbm.world.dungeon.Relay;
import com.hbm.world.generator.CellularDungeonFactory;
import api.hbm.energy.IEnergyConductor;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
@ -32,11 +35,17 @@ public class ItemWandD extends Item {
//int y = world.getHeightValue(x, z);
int y = pos.blockY;
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof IEnergyConductor) {
IEnergyConductor con = (IEnergyConductor) te;
player.addChatComponentMessage(new ChatComponentText("" + con.getPowerNet()));
}
//CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand);
int r = 5;
/*int r = 5;
/*for(int i = x - r; i <= x + r; i++) {
for(int i = x - r; i <= x + r; i++) {
for(int j = y - r; j <= y + r; j++) {
for(int k = z - r; k <= z + r; k++) {
@ -46,7 +55,7 @@ public class ItemWandD extends Item {
}
}*/
new Bunker().generate(world, world.rand, x, y, z);
//new Bunker().generate(world, world.rand, x, y, z);
/*EntityBlockSpider spider = new EntityBlockSpider(world);
spider.setPosition(x + 0.5, y, z + 0.5);

View File

@ -271,6 +271,9 @@ public class ResourceManager {
//Belt
public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj"));
//Network
public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj"));
////Textures TEs
public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
@ -561,6 +564,9 @@ public class ResourceManager {
//ZIRNOX
public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png");
public static final ResourceLocation zirnox_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox_destroyed.png");
//Electricity
public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png");

View File

@ -60,12 +60,12 @@ public class RenderTestCable implements ISimpleBlockRenderingHandler {
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
boolean pX = Library.canConnect(world, x + 1, y, z, Library.POS_X);
boolean nX = Library.canConnect(world, x - 1, y, z, Library.NEG_X);
boolean pY = Library.canConnect(world, x, y + 1, z, Library.POS_Y);
boolean nY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y);
boolean pZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z);
boolean nZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z);
boolean pX = Library.canConnect(world, x + 1, y, z, Library.NEG_X);
boolean nX = Library.canConnect(world, x - 1, y, z, Library.POS_X);
boolean pY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y);
boolean nY = Library.canConnect(world, x, y - 1, z, Library.POS_Y);
boolean pZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z);
boolean nZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z);
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);

View File

@ -28,10 +28,8 @@ public class RenderConnector extends RenderPylonBase {
GL11.glTranslated(0, -0.5F, 0);
double s = 0.5;
GL11.glScaled(s, s, s);
bindTexture(ResourceManager.universal);
ResourceManager.barrel.renderAll();
bindTexture(ResourceManager.connector_tex);
ResourceManager.connector.renderAll();
GL11.glPopMatrix();
GL11.glPushMatrix();

View File

@ -40,6 +40,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer {
float count = 10;
Vec3 delta = Vec3.createVectorHelper(conX1 - conX0, conY1 - conY0, conZ1 - conZ0);
double hang = delta.lengthVector() / 15D;
for(float j = 0; j < count; j++) {
@ -47,7 +48,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer {
double ja = j + 0.5D;
double ix = conX0 + delta.xCoord / (double)(count * 2) * ja;
double iy = conY0 + delta.yCoord / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5);
double iy = conY0 + delta.yCoord / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5) * hang;
double iz = conZ0 + delta.zCoord / (double)(count * 2) * ja;
//pylon.getWorldObj().spawnParticle("reddust", ix, iy, iz, 0.01 + j * 0.1, 0, 0);
@ -59,10 +60,10 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer {
drawPowerLine(
x + myOffset.xCoord + (wX * j / count),
y + myOffset.yCoord + (wY * j / count) - Math.sin(j / count * Math.PI * 0.5),
y + myOffset.yCoord + (wY * j / count) - Math.sin(j / count * Math.PI * 0.5) * hang,
z + myOffset.zCoord + (wZ * j / count),
x + myOffset.xCoord + (wX * k / count),
y + myOffset.yCoord + (wY * k / count) - Math.sin(k / count * Math.PI * 0.5),
y + myOffset.yCoord + (wY * k / count) - Math.sin(k / count * Math.PI * 0.5) * hang,
z + myOffset.zCoord + (wZ * k / count));
}
}

View File

@ -226,18 +226,18 @@ public class TileEntityCompactLauncher extends TileEntity implements ISidedInven
}
private void updateConnections() {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord + 1, yCoord - 1, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 1, yCoord - 1, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 1, yCoord - 1, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 1, yCoord - 1, zCoord - 1);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord - 1, zCoord + 1, Library.NEG_Y);
this.trySubscribe(worldObj, xCoord + 1, yCoord - 1, zCoord - 1, Library.NEG_Y);
this.trySubscribe(worldObj, xCoord - 1, yCoord - 1, zCoord + 1, Library.NEG_Y);
this.trySubscribe(worldObj, xCoord - 1, yCoord - 1, zCoord - 1, Library.NEG_Y);
}
public boolean canLaunch() {

View File

@ -200,11 +200,11 @@ public class TileEntityLaunchPad extends TileEntity implements ISidedInventory,
}
private void updateConnections() {
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y);
}
@Override

View File

@ -225,10 +225,10 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory
private void updateConnections() {
for(int i = -4; i <= 4; i++) {
this.trySubscribe(worldObj, xCoord + i, yCoord, zCoord + 5);
this.trySubscribe(worldObj, xCoord + i, yCoord, zCoord - 5);
this.trySubscribe(worldObj, xCoord + 5, yCoord, zCoord + i);
this.trySubscribe(worldObj, xCoord - 5, yCoord, zCoord + i);
this.trySubscribe(worldObj, xCoord + i, yCoord, zCoord + 5, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + i, yCoord, zCoord - 5, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord + 5, yCoord, zCoord + i, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 5, yCoord, zCoord + i, Library.NEG_X);
}
}

View File

@ -35,7 +35,7 @@ public class TileEntityConverterHeRf extends TileEntityMachineBase implements IE
if (!worldObj.isRemote) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
storage.setCapacity((int)power * 4);
storage.setEnergyStored((int)power * 4);

View File

@ -15,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCoreAdvanced extends TileEntity implements ISidedInventory, IFactory, IEnergyUser {
@ -236,12 +237,12 @@ public class TileEntityCoreAdvanced extends TileEntity implements ISidedInventor
if(!worldObj.isRemote) {
if(worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.factory_advanced_conductor)
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord, ForgeDirection.UP);
else
this.tryUnsubscribe(worldObj, xCoord, yCoord + 2, zCoord);
if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.factory_advanced_conductor)
this.trySubscribe(worldObj, xCoord, yCoord - 2, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord - 2, zCoord, ForgeDirection.DOWN);
else
this.tryUnsubscribe(worldObj, xCoord, yCoord - 2, zCoord);
}

View File

@ -89,7 +89,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public void networkUnpack(NBTTagCompound data) {

View File

@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCoreTitanium extends TileEntity implements ISidedInventory, IFactory, IEnergyUser {
@ -238,12 +239,12 @@ public class TileEntityCoreTitanium extends TileEntity implements ISidedInventor
if(!worldObj.isRemote) {
if(worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.factory_titanium_conductor)
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord, ForgeDirection.UP);
else
this.tryUnsubscribe(worldObj, xCoord, yCoord + 2, zCoord);
if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.factory_titanium_conductor)
this.trySubscribe(worldObj, xCoord, yCoord - 2, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord - 2, zCoord, ForgeDirection.DOWN);
else
this.tryUnsubscribe(worldObj, xCoord, yCoord - 2, zCoord);
}

View File

@ -74,7 +74,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
protected void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public void networkUnpack(NBTTagCompound data) {

View File

@ -84,14 +84,14 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor {
offsetZ = dir.offsetZ;
}
this.trySubscribe(worldObj, this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 1);
this.trySubscribe(worldObj, this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 0);
this.trySubscribe(worldObj, this.xCoord + offsetX * 1, this.yCoord, this.zCoord - offsetZ * 2);
this.trySubscribe(worldObj, this.xCoord + offsetX * 0, this.yCoord, this.zCoord - offsetZ * 2);
this.trySubscribe(worldObj, this.xCoord + offsetX * 1, this.yCoord, this.zCoord + offsetZ * 1);
this.trySubscribe(worldObj, this.xCoord + offsetX * 0, this.yCoord, this.zCoord + offsetZ * 1);
this.trySubscribe(worldObj, this.xCoord - offsetX * 1, this.yCoord, this.zCoord + offsetZ * 0);
this.trySubscribe(worldObj, this.xCoord - offsetX * 1, this.yCoord, this.zCoord - offsetZ * 1);
this.trySubscribe(worldObj, this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 1, ForgeDirection.UNKNOWN); //TODO: figure this one out without dying
this.trySubscribe(worldObj, this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 0, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord + offsetX * 1, this.yCoord, this.zCoord - offsetZ * 2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord + offsetX * 0, this.yCoord, this.zCoord - offsetZ * 2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord + offsetX * 1, this.yCoord, this.zCoord + offsetZ * 1, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord + offsetX * 0, this.yCoord, this.zCoord + offsetZ * 1, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord - offsetX * 1, this.yCoord, this.zCoord + offsetZ * 0, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, this.xCoord - offsetX * 1, this.yCoord, this.zCoord - offsetZ * 1, ForgeDirection.UNKNOWN);
}
AxisAlignedBB bb = null;

View File

@ -456,11 +456,11 @@ public class TileEntityForceField extends TileEntity implements ISidedInventory,
}
private void updateConnections() {
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y);
}
@Override

View File

@ -21,7 +21,7 @@ public class TileEntityHadronPower extends TileEntity implements IEnergyUser {
public void updateEntity() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
}

View File

@ -26,6 +26,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidSource {
@ -161,8 +162,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser
this.networkPack(data, 250);
/// END Notif packets ///
this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord, ForgeDirection.UP);
this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord, ForgeDirection.DOWN);
} else {

View File

@ -247,28 +247,28 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements
this.getBlockMetadata();
if(this.blockMetadata == 5) {
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X);
} else if(this.blockMetadata == 3) {
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z);
} else if(this.blockMetadata == 4) {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X);
} else if(this.blockMetadata == 2) {
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z);
}
}

View File

@ -311,7 +311,7 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public boolean isItemValid() {

View File

@ -313,7 +313,7 @@ public class TileEntityMachineCMBFactory extends TileEntity implements ISidedInv
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
@Override

View File

@ -444,28 +444,28 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
this.getBlockMetadata();
if(this.blockMetadata == 5) {
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X);
} else if(this.blockMetadata == 3) {
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z);
} else if(this.blockMetadata == 4) {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X);
} else if(this.blockMetadata == 2) {
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z);
}
}

View File

@ -103,13 +103,13 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) {
this.trySubscribe(worldObj, xCoord + 2, yCoord + 5, zCoord);
this.trySubscribe(worldObj, xCoord - 2, yCoord + 5, zCoord);
this.trySubscribe(worldObj, xCoord + 2, yCoord + 5, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord + 5, zCoord, Library.NEG_X);
}
if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) {
this.trySubscribe(worldObj, xCoord, yCoord + 5, zCoord + 2);
this.trySubscribe(worldObj, xCoord, yCoord + 5, zCoord - 2);
this.trySubscribe(worldObj, xCoord, yCoord + 5, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord + 5, zCoord - 2, Library.NEG_Z);
}
}

View File

@ -156,14 +156,14 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements
private void updateConnections() {
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 3);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 3, Library.POS_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z);
}
public void networkUnpack(NBTTagCompound data) {

View File

@ -33,7 +33,7 @@ public class TileEntityMachineDetector extends TileEntity implements IEnergyUser
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
@Override
@ -48,7 +48,7 @@ public class TileEntityMachineDetector extends TileEntity implements IEnergyUser
@Override
public long getMaxPower() {
return 20;
return 5;
}
}

View File

@ -273,7 +273,7 @@ public class TileEntityMachineEPress extends TileEntity implements ISidedInvento
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public long getPowerScaled(int i) {

View File

@ -324,7 +324,7 @@ public class TileEntityMachineElectricFurnace extends TileEntity implements ISid
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
@Override

View File

@ -213,12 +213,12 @@ public class TileEntityMachineMiningDrill extends TileEntityMachineBase implemen
this.getBlockMetadata();
if(this.blockMetadata == 5 || this.blockMetadata == 4) {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X);
} else if(this.blockMetadata == 3 || this.blockMetadata == 2) {
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z);
}
}

View File

@ -38,6 +38,7 @@ import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill {
@ -178,7 +179,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
}
private void updateConnections() {
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord, ForgeDirection.UP);
}
public void networkUnpack(NBTTagCompound data) {

View File

@ -133,7 +133,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
for(int i = 1; i < 4; i++) {
for(int j = -1; j < 2; j++) {
this.trySubscribe(worldObj, xCoord + side.offsetX * j + dir.offsetX * 2, yCoord + i, zCoord + side.offsetZ * j + dir.offsetZ * 2);
this.trySubscribe(worldObj, xCoord + side.offsetX * j + dir.offsetX * 2, yCoord + i, zCoord + side.offsetZ * j + dir.offsetZ * 2, j < 0 ? ForgeDirection.DOWN : ForgeDirection.UP);
}
}
}

View File

@ -186,7 +186,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public void onChunkUnload() {

View File

@ -353,4 +353,9 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide
return list;
}
@Override
public boolean canConnect(ForgeDirection dir) {
return dir == ForgeDirection.DOWN;
}
}

View File

@ -294,7 +294,7 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public void processItem() {

View File

@ -45,7 +45,7 @@ public class TileEntityRadiobox extends TileEntity implements IEnergyUser {
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
@Override

View File

@ -26,6 +26,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor {
@ -60,7 +61,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
if (!worldObj.isRemote) {
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN);
tanks[0].loadTank(4, 5, slots);
tanks[1].loadTank(6, 7, slots);

View File

@ -87,7 +87,7 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse
private void updateConnections() {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
public static List<double[]> zap(World worldObj, double x, double y, double z, double radius, Entity source) {

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.oil;
import com.hbm.blocks.ModBlocks;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.lib.Library;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@ -18,10 +19,10 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase {
@Override
protected void updateConnections() {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z);
}
@Override

View File

@ -28,10 +28,10 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase {
ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata - BlockDummyable.offset);
ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 2 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2 + dir.offsetZ * 2);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 2 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 4 - dir.offsetZ * 2);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 4 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 4 + dir.offsetZ * 2);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 4 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 2);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 2 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2 + dir.offsetZ * 2, ForgeDirection.UNKNOWN); //brain overheating, do this shit somewhen else
this.trySubscribe(worldObj, xCoord + rot.offsetX * 2 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 4 - dir.offsetZ * 2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 4 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 4 + dir.offsetZ * 2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + rot.offsetX * 4 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 2, ForgeDirection.UNKNOWN);
}
@Override

View File

@ -316,14 +316,14 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
}
private void updateConnections() {
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1, Library.NEG_X);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z);
this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z);
}
public long getPowerScaled(long i) {

View File

@ -36,6 +36,9 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
IEnergyConductor conductor = (IEnergyConductor) te;
if(!conductor.canConnect(dir.getOpposite()))
break;
if(this.getPowerNet() == null && conductor.getPowerNet() != null) {
conductor.getPowerNet().joinLink(this);
}

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.network;
import api.hbm.energy.IEnergyConductor;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
@ -24,8 +25,10 @@ public class TileEntityConnector extends TileEntityPylonBase {
@Override
protected void connect() {
super.connect();
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata());
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite();
TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
@ -33,6 +36,9 @@ public class TileEntityConnector extends TileEntityPylonBase {
IEnergyConductor conductor = (IEnergyConductor) te;
if(!conductor.canConnect(dir.getOpposite()))
return;
if(this.getPowerNet() == null && conductor.getPowerNet() != null) {
conductor.getPowerNet().joinLink(this);
}
@ -42,4 +48,9 @@ public class TileEntityConnector extends TileEntityPylonBase {
}
}
}
@Override
public boolean canConnect(ForgeDirection dir) {
return dir == ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite();
}
}

View File

@ -243,17 +243,18 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite();
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0);
this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1);
//how did i even make this? what???
this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0, ForgeDirection.UNKNOWN);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, ForgeDirection.UNKNOWN);
}
@Override

View File

@ -0,0 +1,250 @@
# Blender v2.79 (sub 0) OBJ File: 'connector.blend'
# www.blender.org
o Cube_Cube.001
v -0.062500 0.437500 0.062500
v -0.062500 0.562500 0.062500
v -0.062500 0.437500 -0.062500
v -0.062500 0.562500 -0.062500
v 0.062500 0.437500 0.062500
v 0.062500 0.562500 0.062500
v 0.062500 0.437500 -0.062500
v 0.062500 0.562500 -0.062500
v -0.125000 0.437500 0.125000
v -0.125000 0.437500 -0.125000
v 0.125000 0.437500 0.125000
v 0.125000 0.437500 -0.125000
v -0.125000 0.375000 0.125000
v -0.125000 0.375000 -0.125000
v 0.125000 0.375000 0.125000
v 0.125000 0.375000 -0.125000
v -0.187500 0.375000 0.187500
v -0.187500 0.375000 -0.187500
v 0.187500 0.375000 0.187500
v 0.187500 0.375000 -0.187500
v -0.187500 0.250000 0.187500
v -0.187500 0.250000 -0.187500
v 0.187500 0.250000 0.187500
v 0.187500 0.250000 -0.187500
v -0.125000 0.250000 0.125000
v -0.125000 0.250000 -0.125000
v 0.125000 0.250000 0.125000
v 0.125000 0.250000 -0.125000
v -0.125000 0.187500 0.125000
v -0.125000 0.187500 -0.125000
v 0.125000 0.187500 0.125000
v 0.125000 0.187500 -0.125000
v -0.187500 0.187500 0.187500
v -0.187500 0.187500 -0.187500
v 0.187500 0.187500 0.187500
v 0.187500 0.187500 -0.187500
v -0.187500 0.062500 0.187500
v -0.187500 0.062500 -0.187500
v 0.187500 0.062500 0.187500
v 0.187500 0.062500 -0.187500
v -0.125000 0.062500 0.125000
v -0.125000 0.062500 -0.125000
v 0.125000 0.062500 0.125000
v 0.125000 0.062500 -0.125000
v -0.125000 0.000000 0.125000
v -0.125000 0.000000 -0.125000
v 0.125000 0.000000 0.125000
v 0.125000 0.000000 -0.125000
vt 0.666667 0.900000
vt 0.333333 0.800000
vt 0.666667 0.800000
vt 0.666667 0.900000
vt 0.333333 0.800000
vt 0.666667 0.800000
vt 0.666667 0.900000
vt 0.333333 0.800000
vt 0.666667 0.800000
vt 0.666667 0.900000
vt 0.333333 0.800000
vt 0.666667 0.800000
vt 0.833333 0.750000
vt 0.666667 1.000000
vt 0.333333 0.900000
vt 0.833333 0.750000
vt 0.833333 0.750000
vt 0.833333 0.750000
vt 0.166667 0.750000
vt 0.833333 0.700000
vt 0.166667 0.750000
vt 0.833333 0.700000
vt 0.166667 0.750000
vt 0.833333 0.700000
vt 0.166667 0.750000
vt 0.833333 0.700000
vt 0.166667 0.700000
vt 1.000000 0.650000
vt 0.166667 0.700000
vt 1.000000 0.650000
vt 0.166667 0.700000
vt 1.000000 0.650000
vt 0.166667 0.700000
vt 1.000000 0.650000
vt -0.000000 0.650000
vt 1.000000 0.550000
vt 0.000000 0.650000
vt 1.000000 0.550000
vt 0.000000 0.650000
vt 1.000000 0.550000
vt 0.000000 0.650000
vt 1.000000 0.550000
vt 0.166667 0.500000
vt 0.833333 0.450000
vt 0.833333 0.500000
vt 0.166667 0.500000
vt 0.833333 0.450000
vt 0.833333 0.500000
vt 0.166667 0.500000
vt 0.833333 0.450000
vt 0.833333 0.500000
vt 0.166667 0.500000
vt 0.833333 0.450000
vt 0.833333 0.500000
vt 0.166667 0.450000
vt 1.000000 0.400000
vt 0.166667 0.450000
vt 1.000000 0.400000
vt 0.166667 0.450000
vt 1.000000 0.400000
vt 0.166667 0.450000
vt 1.000000 0.400000
vt -0.000000 0.400000
vt 1.000000 0.300000
vt 0.000000 0.400000
vt 1.000000 0.300000
vt 0.000000 0.400000
vt 1.000000 0.300000
vt 0.000000 0.400000
vt 1.000000 0.300000
vt 0.166667 0.250000
vt 0.833333 0.200000
vt 0.833333 0.250000
vt 0.166667 0.250000
vt 0.833333 0.200000
vt 0.833333 0.250000
vt 0.166667 0.250000
vt 0.833333 0.200000
vt 0.833333 0.250000
vt 0.166667 0.250000
vt 0.833333 0.200000
vt 0.833333 0.250000
vt 0.166667 0.000000
vt 0.833333 0.000000
vt -0.000000 0.300000
vt 0.000000 0.300000
vt 0.000000 0.300000
vt 0.000000 0.300000
vt -0.000000 0.550000
vt 0.000000 0.550000
vt 0.000000 0.550000
vt 0.000000 0.550000
vt 0.333333 0.900000
vt 0.333333 0.900000
vt 0.333333 0.900000
vt 0.333333 1.000000
vt 0.166667 0.200000
vt 0.166667 0.200000
vt 0.166667 0.200000
vt 0.166667 0.200000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
s off
f 2/1/1 3/2/1 1/3/1
f 4/4/2 7/5/2 3/6/2
f 8/7/3 5/8/3 7/9/3
f 6/10/4 1/11/4 5/12/4
f 7/5/5 10/13/5 3/6/5
f 4/14/5 6/15/5 8/7/5
f 3/2/5 9/16/5 1/3/5
f 5/8/5 12/17/5 7/9/5
f 1/11/5 11/18/5 5/12/5
f 9/19/4 15/20/4 11/18/4
f 12/21/2 14/22/2 10/13/2
f 11/23/3 16/24/3 12/17/3
f 10/25/1 13/26/1 9/16/1
f 15/27/5 20/28/5 16/24/5
f 14/29/5 17/30/5 13/26/5
f 13/31/5 19/32/5 15/20/5
f 16/33/5 18/34/5 14/22/5
f 17/35/4 23/36/4 19/32/4
f 20/37/2 22/38/2 18/34/2
f 19/39/3 24/40/3 20/28/3
f 18/41/1 21/42/1 17/30/1
f 25/43/4 31/44/4 27/45/4
f 28/46/2 30/47/2 26/48/2
f 27/49/3 32/50/3 28/51/3
f 26/52/1 29/53/1 25/54/1
f 31/55/5 36/56/5 32/50/5
f 30/57/5 33/58/5 29/53/5
f 29/59/5 35/60/5 31/44/5
f 32/61/5 34/62/5 30/47/5
f 33/63/4 39/64/4 35/60/4
f 36/65/2 38/66/2 34/62/2
f 35/67/3 40/68/3 36/56/3
f 34/69/1 37/70/1 33/58/1
f 41/71/4 47/72/4 43/73/4
f 44/74/2 46/75/2 42/76/2
f 43/77/3 48/78/3 44/79/3
f 42/80/1 45/81/1 41/82/1
f 48/78/6 45/83/6 46/84/6
f 37/85/6 43/73/6 39/64/6
f 39/86/6 44/79/6 40/68/6
f 40/87/6 42/76/6 38/66/6
f 38/88/6 41/82/6 37/70/6
f 21/89/6 27/45/6 23/36/6
f 23/90/6 28/51/6 24/40/6
f 24/91/6 26/48/6 22/38/6
f 22/92/6 25/54/6 21/42/6
f 2/1/1 4/93/1 3/2/1
f 4/4/2 8/94/2 7/5/2
f 8/7/3 6/15/3 5/8/3
f 6/10/4 2/95/4 1/11/4
f 7/5/5 12/21/5 10/13/5
f 4/14/5 2/96/5 6/15/5
f 3/2/5 10/25/5 9/16/5
f 5/8/5 11/23/5 12/17/5
f 1/11/5 9/19/5 11/18/5
f 9/19/4 13/31/4 15/20/4
f 12/21/2 16/33/2 14/22/2
f 11/23/3 15/27/3 16/24/3
f 10/25/1 14/29/1 13/26/1
f 15/27/5 19/39/5 20/28/5
f 14/29/5 18/41/5 17/30/5
f 13/31/5 17/35/5 19/32/5
f 16/33/5 20/37/5 18/34/5
f 17/35/4 21/89/4 23/36/4
f 20/37/2 24/91/2 22/38/2
f 19/39/3 23/90/3 24/40/3
f 18/41/1 22/92/1 21/42/1
f 25/43/4 29/59/4 31/44/4
f 28/46/2 32/61/2 30/47/2
f 27/49/3 31/55/3 32/50/3
f 26/52/1 30/57/1 29/53/1
f 31/55/5 35/67/5 36/56/5
f 30/57/5 34/69/5 33/58/5
f 29/59/5 33/63/5 35/60/5
f 32/61/5 36/65/5 34/62/5
f 33/63/4 37/85/4 39/64/4
f 36/65/2 40/87/2 38/66/2
f 35/67/3 39/86/3 40/68/3
f 34/69/1 38/88/1 37/70/1
f 41/71/4 45/97/4 47/72/4
f 44/74/2 48/98/2 46/75/2
f 43/77/3 47/99/3 48/78/3
f 42/80/1 46/100/1 45/81/1
f 48/78/6 47/99/6 45/83/6
f 37/85/6 41/71/6 43/73/6
f 39/86/6 43/77/6 44/79/6
f 40/87/6 44/74/6 42/76/6
f 38/88/6 42/80/6 41/82/6
f 21/89/6 25/43/6 27/45/6
f 23/90/6 27/49/6 28/51/6
f 24/91/6 28/46/6 26/48/6
f 22/92/6 26/52/6 25/54/6

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B