Added gear shaft
This commit is contained in:
parent
73ddd6ff18
commit
17108484f9
10 changed files with 324 additions and 57 deletions
|
@ -12,7 +12,9 @@ import resonantinduction.electrical.multimeter.RenderMultimeter;
|
|||
import resonantinduction.electrical.transformer.ItemTransformer;
|
||||
import resonantinduction.electrical.transformer.RenderTransformer;
|
||||
import resonantinduction.mechanical.gear.ItemGear;
|
||||
import resonantinduction.mechanical.gear.ItemGearShaft;
|
||||
import resonantinduction.mechanical.gear.RenderGear;
|
||||
import resonantinduction.mechanical.gear.RenderGearShaft;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
@ -51,6 +53,10 @@ public class RenderRIItem implements IItemRenderer
|
|||
{
|
||||
RenderGear.INSTANCE.renderInventory(null, 0, 0, null);
|
||||
}
|
||||
else if (item.getItem() instanceof ItemGearShaft)
|
||||
{
|
||||
RenderGearShaft.INSTANCE.renderInventory(null, 0, 0, null);
|
||||
}
|
||||
else if (item.getItem() instanceof ItemMultimeter)
|
||||
{
|
||||
GL11.glRotatef(180, 0, 1, 0);
|
||||
|
|
|
@ -14,6 +14,7 @@ public class ClientProxy extends CommonProxy
|
|||
public void preInit()
|
||||
{
|
||||
MinecraftForgeClient.registerItemRenderer(Mechanical.itemGear.itemID, RenderRIItem.INSTANCE);
|
||||
MinecraftForgeClient.registerItemRenderer(Mechanical.itemGearShaft.itemID, RenderRIItem.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -18,6 +18,7 @@ import resonantinduction.mechanical.fluid.pump.TileGrate;
|
|||
import resonantinduction.mechanical.fluid.tank.BlockTank;
|
||||
import resonantinduction.mechanical.fluid.tank.TileTank;
|
||||
import resonantinduction.mechanical.gear.ItemGear;
|
||||
import resonantinduction.mechanical.gear.ItemGearShaft;
|
||||
import resonantinduction.mechanical.item.ItemPipeGauge;
|
||||
import resonantinduction.mechanical.logistic.BlockDetector;
|
||||
import resonantinduction.mechanical.logistic.BlockManipulator;
|
||||
|
@ -72,7 +73,7 @@ public class Mechanical
|
|||
|
||||
// Energy
|
||||
public static Item itemGear;
|
||||
public static Block itemGearShaft;
|
||||
public static Item itemGearShaft;
|
||||
|
||||
// Transport
|
||||
public static Block blockConveyorBelt;
|
||||
|
@ -101,6 +102,7 @@ public class Mechanical
|
|||
Settings.load();
|
||||
NetworkRegistry.instance().registerGuiHandler(this, proxy);
|
||||
itemGear = contentRegistry.createItem(ItemGear.class);
|
||||
itemGearShaft = contentRegistry.createItem(ItemGearShaft.class);
|
||||
|
||||
blockConveyorBelt = contentRegistry.createTile(BlockConveyorBelt.class, TileConveyorBelt.class);
|
||||
blockManipulator = contentRegistry.createTile(BlockManipulator.class, TileManipulator.class);
|
||||
|
|
|
@ -2,6 +2,7 @@ package resonantinduction.mechanical;
|
|||
|
||||
import resonantinduction.mechanical.fluid.pipe.PartPipe;
|
||||
import resonantinduction.mechanical.gear.PartGear;
|
||||
import resonantinduction.mechanical.gear.PartGearShaft;
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.MultiPartRegistry.IPartFactory;
|
||||
import codechicken.multipart.MultipartGenerator;
|
||||
|
@ -11,7 +12,7 @@ public class MultipartMechanical implements IPartFactory
|
|||
{
|
||||
public static MultipartMechanical INSTANCE;
|
||||
|
||||
public static final String[] PART_TYPES = { "resonant_induction_gear", "resonant_induction_pipe" };
|
||||
public static final String[] PART_TYPES = { "resonant_induction_gear", "resonant_induction_gear_shaft", "resonant_induction_pipe" };
|
||||
|
||||
public MultipartMechanical()
|
||||
{
|
||||
|
@ -27,6 +28,10 @@ public class MultipartMechanical implements IPartFactory
|
|||
{
|
||||
return new PartGear();
|
||||
}
|
||||
else if (name.equals("resonant_induction_gear_shaft"))
|
||||
{
|
||||
return new PartGearShaft();
|
||||
}
|
||||
else if (name.equals("resonant_induction_pipe"))
|
||||
{
|
||||
return new PartPipe();
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
package resonantinduction.mechanical.gear;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import resonantinduction.core.Settings;
|
||||
import resonantinduction.core.prefab.part.ItemMultipartBase;
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
|
||||
public class ItemGearShaft extends ItemMultipartBase
|
||||
{
|
||||
public ItemGearShaft()
|
||||
{
|
||||
super("gearShaft", Settings.getNextItemID());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TMultiPart newPart(ItemStack itemStack, EntityPlayer player, World world, BlockCoord pos, int side, Vector3 hit)
|
||||
{
|
||||
PartGearShaft part = (PartGearShaft) MultiPartRegistry.createPart("resonant_induction_gear_shaft", false);
|
||||
|
||||
if (part != null)
|
||||
{
|
||||
part.preparePlacement(side, itemStack.getItemDamage());
|
||||
}
|
||||
|
||||
return part;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package resonantinduction.mechanical.gear;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -16,8 +17,11 @@ import resonantinduction.mechanical.network.PartMechanical;
|
|||
import calclavia.lib.multiblock.reference.IMultiBlockStructure;
|
||||
import calclavia.lib.multiblock.reference.MultiBlockHandler;
|
||||
import calclavia.lib.prefab.block.BlockAdvanced;
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Rotation;
|
||||
import codechicken.lib.vec.Transformation;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.microblock.FaceMicroClass;
|
||||
import codechicken.multipart.ControlKeyModifer;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
@ -32,6 +36,20 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
*/
|
||||
public class PartGear extends PartMechanical implements IMechanical, IMultiBlockStructure<PartGear>
|
||||
{
|
||||
public static Cuboid6[][] oBoxes = new Cuboid6[6][2];
|
||||
|
||||
static
|
||||
{
|
||||
oBoxes[0][0] = new Cuboid6(1 / 8D, 0, 0, 7 / 8D, 1 / 8D, 1);
|
||||
oBoxes[0][1] = new Cuboid6(0, 0, 1 / 8D, 1, 1 / 8D, 7 / 8D);
|
||||
for (int s = 1; s < 6; s++)
|
||||
{
|
||||
Transformation t = Rotation.sideRotations[s].at(Vector3.center);
|
||||
oBoxes[s][0] = oBoxes[0][0].copy().apply(t);
|
||||
oBoxes[s][1] = oBoxes[0][1].copy().apply(t);
|
||||
}
|
||||
}
|
||||
|
||||
private int manualCrankTime = 0;
|
||||
|
||||
@Override
|
||||
|
@ -82,13 +100,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
@Override
|
||||
public boolean activate(EntityPlayer player, MovingObjectPosition hit, ItemStack item)
|
||||
{
|
||||
if (!world().isRemote)
|
||||
{
|
||||
// System.out.println(this + ":" + getNetwork());
|
||||
// for(Object obj : connections)
|
||||
// System.out.println(obj);
|
||||
}
|
||||
|
||||
if (BlockAdvanced.isUsableWrench(player, player.getCurrentEquippedItem(), x(), y(), z()))
|
||||
{
|
||||
if (player.isSneaking())
|
||||
|
@ -112,7 +123,7 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return super.activate(player, hit, item);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -159,14 +170,21 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ForgeDirection checkDir = ForgeDirection.getOrientation(i);
|
||||
IMechanical instance = ((IMechanical) tile()).getInstance(checkDir);
|
||||
|
||||
if (connections[checkDir.ordinal()] == null && checkDir != placementSide && checkDir != placementSide.getOpposite() && instance != null && instance.canConnect(checkDir.getOpposite(), this))
|
||||
/**
|
||||
* If we're checking for the block that is opposite to the gear's placement side
|
||||
* (the center), then we try to look for a gear shaft in the center.
|
||||
*/
|
||||
|
||||
IMechanical instance = ((IMechanical) tile()).getInstance(checkDir == placementSide.getOpposite() ? ForgeDirection.UNKNOWN : checkDir);
|
||||
|
||||
if (connections[checkDir.ordinal()] == null && checkDir != placementSide && instance != null && instance.canConnect(checkDir.getOpposite(), this))
|
||||
{
|
||||
connections[checkDir.ordinal()] = instance;
|
||||
getNetwork().merge(instance.getNetwork());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int displaceCheck = 1;
|
||||
|
@ -338,12 +356,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
return multiBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public universalelectricity.api.vector.Vector3 getPosition()
|
||||
{
|
||||
return new universalelectricity.api.vector.Vector3(x(), y(), z());
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRatio(ForgeDirection dir)
|
||||
{
|
||||
|
@ -377,9 +389,13 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
*/
|
||||
if (from == placementSide.getOpposite())
|
||||
{
|
||||
if (source instanceof PartGear)
|
||||
if (source instanceof PartGear || source instanceof PartGearShaft)
|
||||
{
|
||||
if (((PartGear) source).tile() == tile() && !getMultiBlock().isConstructed())
|
||||
if (source instanceof PartGearShaft)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (((PartGear) source).tile() == tile() && !getMultiBlock().isConstructed())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -422,4 +438,25 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Multipart Bounds
|
||||
*/
|
||||
@Override
|
||||
public Iterable<Cuboid6> getOcclusionBoxes()
|
||||
{
|
||||
return Arrays.asList(oBoxes[this.placementSide.ordinal()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotMask()
|
||||
{
|
||||
return 1 << this.placementSide.ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cuboid6 getBounds()
|
||||
{
|
||||
return FaceMicroClass.aBounds()[0x10 | this.placementSide.ordinal()];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,152 @@
|
|||
package resonantinduction.mechanical.gear;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.mechanical.Mechanical;
|
||||
import resonantinduction.mechanical.network.IMechanical;
|
||||
import resonantinduction.mechanical.network.PartMechanical;
|
||||
import codechicken.lib.raytracer.IndexedCuboid6;
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Rotation;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.PartMap;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
/**
|
||||
* We assume all the force acting on the gear is 90 degrees.
|
||||
*
|
||||
* @author Calclavia
|
||||
*
|
||||
*/
|
||||
public class PartGearShaft extends PartMechanical
|
||||
{
|
||||
public static Cuboid6[] sides = new Cuboid6[7];
|
||||
|
||||
static
|
||||
{
|
||||
sides[0] = new IndexedCuboid6(0, new Cuboid6(0.36, 0.000, 0.36, 0.64, 0.36, 0.64));
|
||||
sides[1] = new IndexedCuboid6(1, new Cuboid6(0.36, 0.64, 0.36, 0.64, 1.000, 0.64));
|
||||
sides[2] = new IndexedCuboid6(2, new Cuboid6(0.36, 0.36, 0.000, 0.64, 0.64, 0.36));
|
||||
sides[3] = new IndexedCuboid6(3, new Cuboid6(0.36, 0.36, 0.64, 0.64, 0.64, 1.000));
|
||||
sides[4] = new IndexedCuboid6(4, new Cuboid6(0.000, 0.36, 0.36, 0.36, 0.64, 0.64));
|
||||
sides[5] = new IndexedCuboid6(5, new Cuboid6(0.64, 0.36, 0.36, 1.000, 0.64, 0.64));
|
||||
sides[6] = new IndexedCuboid6(6, new Cuboid6(0.36, 0.36, 0.36, 0.64, 0.64, 0.64));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
super.update();
|
||||
|
||||
if (!this.world().isRemote)
|
||||
{
|
||||
// Decelerate the gear.
|
||||
torque *= 0.95f;
|
||||
angularVelocity *= 0.95f;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh should be called sparingly.
|
||||
*/
|
||||
public void refresh()
|
||||
{
|
||||
connections = new Object[6];
|
||||
|
||||
/** Check for internal connections, the FRONT and BACK. */
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ForgeDirection checkDir = ForgeDirection.getOrientation(i);
|
||||
|
||||
if (checkDir == placementSide || checkDir == placementSide.getOpposite())
|
||||
{
|
||||
IMechanical instance = ((IMechanical) tile()).getInstance(checkDir);
|
||||
System.out.println("FOUND POSSIBLE CHECK"+instance);
|
||||
|
||||
if (instance != null && instance.canConnect(checkDir.getOpposite(), this))
|
||||
{
|
||||
connections[checkDir.ordinal()] = instance;
|
||||
getNetwork().merge(instance.getNetwork());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Look for connections outside this block space, the relative FRONT and BACK */
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
ForgeDirection checkDir = ForgeDirection.getOrientation(Rotation.rotateSide(this.placementSide.ordinal(), i));
|
||||
|
||||
if (connections[checkDir.ordinal()] == null && (checkDir == placementSide || checkDir == placementSide.getOpposite()))
|
||||
{
|
||||
TileEntity checkTile = new universalelectricity.api.vector.Vector3(tile()).translate(checkDir).getTileEntity(world());
|
||||
|
||||
if (checkTile instanceof IMechanical)
|
||||
{
|
||||
IMechanical instance = (IMechanical) ((IMechanical) checkTile).getInstance(placementSide);
|
||||
|
||||
if (instance != null && instance.canConnect(checkDir.getOpposite(), this))
|
||||
{
|
||||
connections[checkDir.ordinal()] = instance;
|
||||
getNetwork().merge(instance.getNetwork());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getNetwork().reconstruct();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack getItem()
|
||||
{
|
||||
return new ItemStack(Mechanical.itemGearShaft);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void renderDynamic(Vector3 pos, float frame, int pass)
|
||||
{
|
||||
if (pass == 0)
|
||||
{
|
||||
RenderGearShaft.INSTANCE.renderDynamic(this, pos.x, pos.y, pos.z, frame);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return "resonant_induction_gear_shaft";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection from, Object source)
|
||||
{
|
||||
return from == placementSide || from == placementSide.getOpposite();
|
||||
}
|
||||
|
||||
/**
|
||||
* Multipart Bounds
|
||||
*/
|
||||
@Override
|
||||
public int getSlotMask()
|
||||
{
|
||||
return PartMap.CENTER.mask;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Cuboid6> getOcclusionBoxes()
|
||||
{
|
||||
return Arrays.asList(sides);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cuboid6 getBounds()
|
||||
{
|
||||
return new Cuboid6(0.375, 0.375, 0.375, 0.625, 0.625, 0.625);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package resonantinduction.mechanical.gear;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import resonantinduction.core.Reference;
|
||||
import calclavia.lib.render.RenderUtility;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderGearShaft
|
||||
{
|
||||
public static final RenderGearShaft INSTANCE = new RenderGearShaft();
|
||||
public final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "gears.obj");
|
||||
|
||||
public void renderInventory(Block block, int metadata, int modelID, RenderBlocks renderer)
|
||||
{
|
||||
GL11.glRotatef(90, 1, 0, 0);
|
||||
RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "planks_oak.png");
|
||||
MODEL.renderOnly("Shaft");
|
||||
}
|
||||
|
||||
public void renderDynamic(PartGearShaft part, double x, double y, double z, float frame)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
// Center the model first.
|
||||
GL11.glTranslatef((float) x + 0.5f, (float) y + 0.5f, (float) z + 0.5f);
|
||||
GL11.glTranslatef(0, 0.5f, 0);
|
||||
GL11.glPushMatrix();
|
||||
|
||||
RenderUtility.rotateFaceBlockToSide(part.placementSide);
|
||||
|
||||
GL11.glRotatef((float) Math.toDegrees(part.angle), 0, 1, 0);
|
||||
|
||||
RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "planks_oak.png");
|
||||
MODEL.renderOnly("Shaft");
|
||||
|
||||
GL11.glPopMatrix();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
@ -28,19 +29,6 @@ import codechicken.multipart.TMultiPart;
|
|||
*/
|
||||
public abstract class PartMechanical extends JCuboidPart implements JNormalOcclusion, TFacePart, IMechanical
|
||||
{
|
||||
public static Cuboid6[][] oBoxes = new Cuboid6[6][2];
|
||||
|
||||
static
|
||||
{
|
||||
oBoxes[0][0] = new Cuboid6(1 / 8D, 0, 0, 7 / 8D, 1 / 8D, 1);
|
||||
oBoxes[0][1] = new Cuboid6(0, 0, 1 / 8D, 1, 1 / 8D, 7 / 8D);
|
||||
for (int s = 1; s < 6; s++)
|
||||
{
|
||||
Transformation t = Rotation.sideRotations[s].at(Vector3.center);
|
||||
oBoxes[s][0] = oBoxes[0][0].copy().apply(t);
|
||||
oBoxes[s][1] = oBoxes[0][1].copy().apply(t);
|
||||
}
|
||||
}
|
||||
|
||||
private IMechanicalNetwork network;
|
||||
|
||||
|
@ -68,6 +56,19 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
this.placementSide = ForgeDirection.getOrientation((byte) (side ^ 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean activate(EntityPlayer player, MovingObjectPosition hit, ItemStack item)
|
||||
{
|
||||
if (!world().isRemote)
|
||||
{
|
||||
System.out.println(this + ":" + getNetwork());
|
||||
for(Object obj : connections)
|
||||
System.out.println(obj);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
|
@ -183,18 +184,6 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
// read(packet, packet.readUByte());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotMask()
|
||||
{
|
||||
return 1 << this.placementSide.ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cuboid6 getBounds()
|
||||
{
|
||||
return FaceMicroClass.aBounds()[0x10 | this.placementSide.ordinal()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int redstoneConductionMap()
|
||||
{
|
||||
|
@ -207,16 +196,6 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Multipart Methods
|
||||
*/
|
||||
|
||||
@Override
|
||||
public Iterable<Cuboid6> getOcclusionBoxes()
|
||||
{
|
||||
return Arrays.asList(oBoxes[this.placementSide.ordinal()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(NBTTagCompound nbt)
|
||||
{
|
||||
|
@ -265,7 +244,7 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
@Override
|
||||
public void setNetwork(IMechanicalNetwork network)
|
||||
{
|
||||
network = network;
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -312,4 +291,10 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public universalelectricity.api.vector.Vector3 getPosition()
|
||||
{
|
||||
return new universalelectricity.api.vector.Vector3(x(), y(), z());
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@ import net.minecraftforge.common.ForgeDirection;
|
|||
import resonantinduction.mechanical.network.IMechanical;
|
||||
import resonantinduction.mechanical.network.IMechanicalNetwork;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import codechicken.multipart.PartMap;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
||||
|
|
Loading…
Reference in a new issue