Quantum gates now calculate frequency properly
|
@ -24,6 +24,7 @@ public class MultipartElectrical implements IPartFactory
|
||||||
{
|
{
|
||||||
MultiPartRegistry.registerParts(this, PART_TYPES);
|
MultiPartRegistry.registerParts(this, PART_TYPES);
|
||||||
MultipartGenerator.registerPassThroughInterface("universalelectricity.api.electricity.IVoltageOutput");
|
MultipartGenerator.registerPassThroughInterface("universalelectricity.api.electricity.IVoltageOutput");
|
||||||
|
MultipartGenerator.registerTrait("icbm.api.IBlockFrequency", "resonantinduction.quantum.gate.TraitFrequency");
|
||||||
MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "resonantinduction.electrical.wire.trait.TraitConductor");
|
MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "resonantinduction.electrical.wire.trait.TraitConductor");
|
||||||
MultipartGenerator.registerTrait("cofh.api.energy.IEnergyHandler", "resonantinduction.electrical.wire.trait.TraitEnergyHandler");
|
MultipartGenerator.registerTrait("cofh.api.energy.IEnergyHandler", "resonantinduction.electrical.wire.trait.TraitEnergyHandler");
|
||||||
MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "resonantinduction.electrical.wire.trait.TraitEnergySink");
|
MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "resonantinduction.electrical.wire.trait.TraitEnergySink");
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class BlockQuantumGate extends BlockTile
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float f1, float f2, float f3)
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float f1, float f2, float f3)
|
||||||
{
|
{
|
||||||
if (player != null && player.getHeldItem() == null || player.getHeldItem().itemID != (Electrical.blockGlyph.blockID))
|
if (player != null && player.getHeldItem() == null)
|
||||||
{
|
{
|
||||||
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ public class ItemQuantumGlyph extends JItemMultiPart implements IHighlight
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo)
|
public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < PartQuantumGlyph.MAX_GLYPH; i++)
|
||||||
{
|
{
|
||||||
listToAddTo.add(new ItemStack(itemID, 1, i));
|
listToAddTo.add(new ItemStack(itemID, 1, i));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
package resonantinduction.quantum.gate;
|
package resonantinduction.quantum.gate;
|
||||||
|
|
||||||
|
import icbm.api.IBlockFrequency;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.electrical.Electrical;
|
import resonantinduction.electrical.Electrical;
|
||||||
import calclavia.lib.render.RenderUtility;
|
|
||||||
import codechicken.lib.data.MCDataInput;
|
import codechicken.lib.data.MCDataInput;
|
||||||
import codechicken.lib.data.MCDataOutput;
|
import codechicken.lib.data.MCDataOutput;
|
||||||
import codechicken.lib.vec.Cuboid6;
|
import codechicken.lib.vec.Cuboid6;
|
||||||
|
@ -20,8 +21,9 @@ import codechicken.multipart.JNormalOcclusion;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class PartQuantumGlyph extends JCuboidPart implements JNormalOcclusion
|
public class PartQuantumGlyph extends JCuboidPart implements JNormalOcclusion, IBlockFrequency
|
||||||
{
|
{
|
||||||
|
public static final int MAX_GLYPH = 4;
|
||||||
static final Cuboid6[] bounds = new Cuboid6[8];
|
static final Cuboid6[] bounds = new Cuboid6[8];
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -46,6 +48,42 @@ public class PartQuantumGlyph extends JCuboidPart implements JNormalOcclusion
|
||||||
this.number = (byte) itemDamage;
|
this.number = (byte) itemDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
if (world().isRemote)
|
||||||
|
{
|
||||||
|
int frequency = ((IBlockFrequency) tile()).getFrequency();
|
||||||
|
|
||||||
|
if (frequency > 0)
|
||||||
|
{
|
||||||
|
// Spawn particle effects.
|
||||||
|
universalelectricity.api.vector.Vector3 center = new universalelectricity.api.vector.Vector3(x() + 0.5, y() + 0.5, z() + 0.5);
|
||||||
|
Electrical.proxy.renderElectricShock(world(), center, center.clone().translate(Math.random() * 1 - 0.5, Math.random() * 1 - 0.5, Math.random() * 1 - 0.5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean activate(EntityPlayer player, MovingObjectPosition hit, ItemStack itemStack)
|
||||||
|
{
|
||||||
|
if (!world().isRemote)
|
||||||
|
{
|
||||||
|
int frequency = ((IBlockFrequency) tile()).getFrequency();
|
||||||
|
|
||||||
|
if (frequency > -1)
|
||||||
|
{
|
||||||
|
player.addChatMessage("Quantum Gate Frequency: " + frequency);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.addChatMessage("Quantum Gate not set up.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getType()
|
public String getType()
|
||||||
{
|
{
|
||||||
|
@ -77,7 +115,7 @@ public class PartQuantumGlyph extends JCuboidPart implements JNormalOcclusion
|
||||||
|
|
||||||
protected ItemStack getItem()
|
protected ItemStack getItem()
|
||||||
{
|
{
|
||||||
return new ItemStack(Electrical.itemQuantumGlyph);
|
return new ItemStack(Electrical.itemQuantumGlyph, 1, number);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -124,4 +162,16 @@ public class PartQuantumGlyph extends JCuboidPart implements JNormalOcclusion
|
||||||
nbt.setByte("number", number);
|
nbt.setByte("number", number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFrequency()
|
||||||
|
{
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFrequency(int frequency)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package resonantinduction.quantum.gate;
|
||||||
|
|
||||||
|
import icbm.api.IBlockFrequency;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import scala.collection.Seq;
|
||||||
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import codechicken.multipart.TMultiPart;
|
||||||
|
import codechicken.multipart.TileMultipart;
|
||||||
|
|
||||||
|
public class TraitFrequency extends TileMultipart implements IBlockFrequency
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public int getFrequency()
|
||||||
|
{
|
||||||
|
int frequency = 0;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
for (TMultiPart part : jPartList())
|
||||||
|
{
|
||||||
|
if (part instanceof IBlockFrequency)
|
||||||
|
{
|
||||||
|
frequency += Math.pow(PartQuantumGlyph.MAX_GLYPH, i) * ((IBlockFrequency) part).getFrequency();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i >= 8)
|
||||||
|
return frequency;
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFrequency(int frequency)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Before Width: | Height: | Size: 971 B After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 853 B After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 957 B After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 957 B After Width: | Height: | Size: 3.1 KiB |