diff --git a/src/main/scala/resonantinduction/electrical/ClientProxy.scala b/src/main/scala/resonantinduction/electrical/ClientProxy.scala index 6bcfc0bfb..3324bf926 100644 --- a/src/main/scala/resonantinduction/electrical/ClientProxy.scala +++ b/src/main/scala/resonantinduction/electrical/ClientProxy.scala @@ -1,35 +1,20 @@ package resonantinduction.electrical -import cpw.mods.fml.client.registry.RenderingRegistry +import codechicken.multipart.{TMultiPart, TileMultipart} +import cpw.mods.fml.client.FMLClientHandler +import cpw.mods.fml.client.registry.{ClientRegistry, RenderingRegistry} +import cpw.mods.fml.relauncher.{Side, SideOnly} import net.minecraft.block.Block import net.minecraft.entity.player.EntityPlayer import net.minecraft.tileentity.TileEntity import net.minecraft.world.World -import net.minecraftforge.client.MinecraftForgeClient -import net.minecraftforge.client.model.AdvancedModelLoader -import resonantinduction.electrical.battery.RenderBattery -import resonantinduction.electrical.battery.TileBattery +import resonantinduction.electrical.battery.{RenderBattery, TileBattery} import resonantinduction.electrical.laser.BlockRenderingHandler -import resonantinduction.electrical.laser.emitter.RenderLaserEmitter -import resonantinduction.electrical.laser.focus.crystal.RenderFocusCrystal -import resonantinduction.electrical.laser.focus.mirror.RenderMirror -import resonantinduction.electrical.laser.fx.{EntityLaserFX, EntityBlockParticleFX, EntityScorchFX} -import resonantinduction.electrical.levitator.RenderLevitator -import resonantinduction.electrical.multimeter.GuiMultimeter -import resonantinduction.electrical.multimeter.PartMultimeter -import resonantinduction.electrical.multimeter.RenderMultimeter +import resonantinduction.electrical.laser.fx.{EntityBlockParticleFX, EntityLaserFX, EntityScorchFX} +import resonantinduction.electrical.multimeter.{GuiMultimeter, PartMultimeter} import resonantinduction.electrical.render.FXElectricBolt -import resonantinduction.electrical.tesla.RenderTesla -import resonantinduction.electrical.tesla.TileTesla -import resonantinduction.electrical.transformer.RenderTransformer -import resonantinduction.atomic.gate.RenderQuantumGlyph +import resonantinduction.electrical.tesla.{RenderTesla, TileTesla} import universalelectricity.core.transform.vector.Vector3 -import codechicken.multipart.TMultiPart -import codechicken.multipart.TileMultipart -import cpw.mods.fml.client.FMLClientHandler -import cpw.mods.fml.client.registry.ClientRegistry -import cpw.mods.fml.relauncher.Side -import cpw.mods.fml.relauncher.SideOnly /** @author Calclavia */ @SideOnly(Side.CLIENT) class ClientProxy extends CommonProxy { @@ -40,9 +25,9 @@ import cpw.mods.fml.relauncher.SideOnly override def init { RenderingRegistry.registerBlockHandler(new BlockRenderingHandler.type) - ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileLaserEmitter), RenderLaserEmitter) - ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileMirror), RenderMirror) - ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileFocusCrystal), RenderFocusCrystal) + //ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileLaserEmitter), RenderLaserEmitter) + //ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileMirror), RenderMirror) + //ClientRegistry.bindTileEntitySpecialRenderer(classOf(TileFocusCrystal), RenderFocusCrystal) } override def postInit { diff --git a/src/main/scala/resonantinduction/electrical/MultipartElectrical.java b/src/main/scala/resonantinduction/electrical/MultipartElectrical.java index 41dd23b90..22fbf5457 100644 --- a/src/main/scala/resonantinduction/electrical/MultipartElectrical.java +++ b/src/main/scala/resonantinduction/electrical/MultipartElectrical.java @@ -18,9 +18,10 @@ public class MultipartElectrical implements IPartFactory public MultipartElectrical() { MultiPartRegistry.registerParts(this, PART_TYPES); - MultipartGenerator.registerPassThroughInterface("universalelectricity.api.electricity.IVoltageOutput"); + //MultipartGenerator.registerPassThroughInterface("universalelectricity.api.electricity.IVoltageOutput"); MultipartGenerator.registerTrait("IQuantumGate", "TraitQuantumGate"); - MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "TraitConductor"); + //MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "TraitConductor"); + //TODO check if traits are already registered MultipartGenerator.registerTrait("cofh.api.energy.IEnergyHandler", "TraitEnergyHandler"); MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "TraitEnergySink"); } diff --git a/src/main/scala/resonantinduction/electrical/wire/PartAdvancedWire.java b/src/main/scala/resonantinduction/electrical/wire/PartAdvancedWire.java index 6cf56659a..3e1f5af63 100644 --- a/src/main/scala/resonantinduction/electrical/wire/PartAdvancedWire.java +++ b/src/main/scala/resonantinduction/electrical/wire/PartAdvancedWire.java @@ -16,9 +16,6 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.common.util.ForgeDirection; import resonant.lib.prefab.damage.ElectricalDamage; import resonantinduction.core.prefab.part.MultipartUtility; -import universalelectricity.api.CompatibilityModule; -import universalelectricity.api.electricity.IElectricalNetwork; -import universalelectricity.api.energy.IConductor; import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataOutput; import codechicken.multipart.IRedstonePart; @@ -78,13 +75,13 @@ public abstract class PartAdvancedWire extends PartConductor return Compatibility.isHandler(obj); } - @Override + //@Override public float getResistance() { return this.getMaterial().resistance; } - @Override + //@Override public long getCurrentCapacity() { return this.getMaterial().maxAmps; @@ -190,7 +187,7 @@ public abstract class PartAdvancedWire extends PartConductor this.setColor(dyeColor); return true; } - else if (itemStack.itemID == insulationType.itemID) + else if (itemStack.getItem() == insulationType.getItem()) { if (this.isInsulated()) { @@ -209,7 +206,7 @@ public abstract class PartAdvancedWire extends PartConductor player.inventory.decrStackSize(player.inventory.currentItem, 1); } - this.setInsulated(BlockColored.getDyeFromBlock(itemStack.getItemDamage())); + this.setInsulated(itemStack.getItemDamage()); return true; } } @@ -229,7 +226,7 @@ public abstract class PartAdvancedWire extends PartConductor } @Override - protected ItemStack getItem() + public ItemStack getItem() { return EnumWireMaterial.values()[getMaterialID()].getWire(); } @@ -304,7 +301,7 @@ public abstract class PartAdvancedWire extends PartConductor } @Override - protected boolean checkRedstone(int side) + public boolean checkRedstone(int side) { if (this.world().isBlockIndirectlyGettingPowered(x(), y(), z())) { diff --git a/src/main/scala/resonantinduction/electrical/wire/PartConductor.scala b/src/main/scala/resonantinduction/electrical/wire/PartConductor.scala index 1b4675367..951a68351 100644 --- a/src/main/scala/resonantinduction/electrical/wire/PartConductor.scala +++ b/src/main/scala/resonantinduction/electrical/wire/PartConductor.scala @@ -1,18 +1,16 @@ package resonantinduction.electrical.wire -import ic2.api.energy.event.EnergyTileLoadEvent -import ic2.api.energy.event.EnergyTileUnloadEvent +import codechicken.multipart.TMultiPart +import ic2.api.energy.event.{EnergyTileLoadEvent, EnergyTileUnloadEvent} import ic2.api.energy.tile.IEnergyTile import net.minecraft.nbt.NBTTagCompound import net.minecraft.tileentity.TileEntity -import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.common.util.ForgeDirection import resonantinduction.core.prefab.part.TraitPart -import universalelectricity.api.UniversalClass import universalelectricity.compatibility.Compatibility -import universalelectricity.core.transform.vector.Vector3 -import codechicken.multipart.TMultiPart -import universalelectricity.core.transform.vector.VectorWorld +import universalelectricity.core.transform.vector.{Vector3, VectorWorld} + import scala.util.control.Breaks._ @@ -74,14 +72,13 @@ abstract class PartConductor extends TMultiPart with TraitPart { { if (!world.isRemote) { - this.getNetwork.split(this) + //this.getNetwork.split(this) if (tile.isInstanceOf[IEnergyTile]) { var foundAnotherPart: Boolean = false - var i: Int = 0 for(i <- 0 until tile.partList.size) { val part: TMultiPart = tile.partMap(i) - if (part.isInstanceOf[IEnergyTile] && part ne this) { + if (part.isInstanceOf[IEnergyTile] && part != this) { foundAnotherPart = true break //todo: break is not supported } diff --git a/src/main/scala/resonantinduction/electrical/wire/flat/PartFlatWire.java b/src/main/scala/resonantinduction/electrical/wire/flat/PartFlatWire.java index 9ea37a547..64034102a 100644 --- a/src/main/scala/resonantinduction/electrical/wire/flat/PartFlatWire.java +++ b/src/main/scala/resonantinduction/electrical/wire/flat/PartFlatWire.java @@ -25,7 +25,6 @@ import codechicken.lib.colour.Colour; import codechicken.lib.colour.ColourARGB; import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataOutput; -import codechicken.lib.lighting.LazyLightMatrix; import codechicken.lib.raytracer.IndexedCuboid6; import codechicken.lib.render.CCRenderState; import codechicken.lib.render.TextureUtils; @@ -345,12 +344,12 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal if (this.canConnectTo(tp, ForgeDirection.getOrientation(absDir))) { - this.connections[absDir] = tp; + this.connections()[absDir] = tp; if (tp instanceof PartFlatWire) { // We found a wire, merge networks! - this.getNetwork().merge(((PartFlatWire) tp).getNetwork()); + //this.getNetwork().merge(((PartFlatWire) tp).getNetwork()); } calculatedSides[absDir] = true; @@ -379,11 +378,11 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal if (this.canConnectTo(tp)) { // We found a wire! Merge networks! - this.connections[absDir] = tp; + this.connections()[absDir] = tp; if (tp instanceof PartFlatWire) { - this.getNetwork().merge(((PartFlatWire) tp).getNetwork()); + //this.getNetwork().merge(((PartFlatWire) tp).getNetwork()); } continue; } @@ -398,7 +397,7 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal // Connect to the face of the block the wire is placed on. this.setExternalConnection(-1, this.side); - this.getNetwork().reconstruct(); + //this.getNetwork().reconstruct(); } public boolean setExternalConnection(int r, int absSide) @@ -420,15 +419,15 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal if (tp instanceof PartFlatWire && ((PartFlatWire) tp).canConnectTo(this, ForgeDirection.getOrientation(absSide).getOpposite()) && ((PartFlatWire) tp).maskOpen(otherR)) { // We found a wire! Merge connection. - connections[absSide] = tp; - getNetwork().merge(((PartFlatWire) tp).getNetwork()); + connections()[absSide] = tp; + //getNetwork().merge(((PartFlatWire) tp).getNetwork()); return true; } /** Check for a micro-energy block */ if (canConnectTo(tp)) { - connections[absSide] = tp; + connections()[absSide] = tp; return true; } } @@ -441,7 +440,7 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal if (this.canConnectTo(tileEntity, ForgeDirection.getOrientation(absSide))) { - this.connections[absSide] = tileEntity; + this.connections()[absSide] = tileEntity; return true; } @@ -454,17 +453,17 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal { if (!this.world().isRemote) { - if (this.connections[i] != null) + if (this.connections()[i] != null) { - if (this.connections[i] instanceof PartFlatWire) + if (this.connections()[i] instanceof PartFlatWire) { - PartFlatWire wire = (PartFlatWire) this.connections[i]; - this.connections[i] = null; - this.getNetwork().split(this, wire); + PartFlatWire wire = (PartFlatWire) this.connections()[i]; + this.connections()[i] = null; + //this.getNetwork().split(this, wire); } else { - this.connections[i] = null; + this.connections()[i] = null; } } } @@ -473,7 +472,7 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal @Override public Object[] getConnections() { - return this.connections; + return this.connections(); } public boolean canStay() @@ -908,14 +907,16 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal @Override @SideOnly(Side.CLIENT) - public void renderStatic(Vector3 pos, LazyLightMatrix olm, int pass) + public boolean renderStatic(Vector3 pos, int pass) { if (pass == 0 && useStaticRenderer()) { CCRenderState.setBrightness(world(), x(), y(), z()); RenderFlatWire.render(this, pos); CCRenderState.setColour(-1); + return true; } + return false; } @Override @@ -926,7 +927,7 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal { GL11.glDisable(GL11.GL_LIGHTING); TextureUtils.bindAtlas(0); - CCRenderState.useModelColours(true); + //CCRenderState.useModelColours(true); CCRenderState.startDrawing(7); RenderFlatWire.render(this, pos); CCRenderState.draw(); @@ -951,12 +952,12 @@ public class PartFlatWire extends PartAdvancedWire implements TFacePart, JNormal { this.isInsulated = otherCable.isInsulated; this.color = otherCable.color; - this.connections = otherCable.connections; + this.connections_$eq(otherCable.connections()); this.material = otherCable.material; this.side = otherCable.side; this.connMap = otherCable.connMap; - this.setNetwork(otherCable.getNetwork()); - this.getNetwork().setBufferFor(this, otherCable.getNetwork().getBufferOf(otherCable)); + //this.setNetwork(otherCable.getNetwork()); + //this.getNetwork().setBufferFor(this, otherCable.getNetwork().getBufferOf(otherCable)); } @Override diff --git a/src/main/scala/resonantinduction/electrical/wire/flat/RenderFlatWire.java b/src/main/scala/resonantinduction/electrical/wire/flat/RenderFlatWire.java index 0c7a24642..15a058182 100644 --- a/src/main/scala/resonantinduction/electrical/wire/flat/RenderFlatWire.java +++ b/src/main/scala/resonantinduction/electrical/wire/flat/RenderFlatWire.java @@ -3,10 +3,7 @@ package resonantinduction.electrical.wire.flat; import java.util.Arrays; import java.util.LinkedList; -import codechicken.lib.render.uv.IconTransformation; -import codechicken.lib.render.uv.UV; -import codechicken.lib.render.uv.UVScale; -import codechicken.lib.render.uv.UVTranslation; +import codechicken.lib.render.uv.*; import net.minecraft.util.IIcon; import codechicken.lib.lighting.LightModel; import codechicken.lib.math.MathHelper; @@ -24,7 +21,7 @@ public class RenderFlatWire { public static IIcon flatWireTexture; - public static class UVT implements IUVTransformation + public static class UVT extends UVTransformation { public Transformation t; private Vector3 vec = new Vector3(); @@ -34,13 +31,18 @@ public class RenderFlatWire this.t = t; } - @Override - public void transform(UV uv) - { - vec.set(uv.u, 0, uv.v).apply(t); - uv.set(vec.x, vec.z); - } - } + @Override + public void apply(UV uv) + { + vec.set(uv.u, 0, uv.v).apply(t); + uv.set(vec.x, vec.z); + } + + @Override + public UVTransformation inverse() { + return null; + } + } public static int[] reorientSide = new int[] { 0, 3, 3, 0, 0, 3 }; @@ -285,7 +287,7 @@ public class RenderFlatWire if (r != 0) { - IUVTransformation uvt = new UVT(Rotation.quarterRotations[r % 4].at(new Vector3(8, 0, 16))); + UVTransformation uvt = new UVT(Rotation.quarterRotations[r % 4].at(new Vector3(8, 0, 16))); for (Vertex5 vert : verts) vert.apply(uvt); } @@ -408,9 +410,10 @@ public class RenderFlatWire public static void render(PartFlatWire w, Vector3 pos) { - IVertexModifier m = w.getColour().pack() == -1 ? ColourModifier.instance : new ColourMultiplier(w.getColour()); - CCModel model = getOrGenerateModel(modelKey(w)); - model.render(new Translation(pos), new IconTransformation(w.getIcon()), m); + //TODO + //IVertexModifier m = w.getColour().pack() == -1 ? ColourModifier.instance : new ColourMultiplier(w.getColour()); + //CCModel model = getOrGenerateModel(modelKey(w)); + //model.render(new Translation(pos), new IconTransformation(w.getIcon()), m); } public static void renderInv(int thickness, Transformation t, IIcon icon) @@ -463,7 +466,7 @@ public class RenderFlatWire } } - for (Cuboid6 box : boxes) - RenderUtils.renderBlock(box, 0, new Translation(wire.x(), wire.y(), wire.z()), new IconTransformation(icon), null); + //TODO for (Cuboid6 box : boxes) + //RenderUtils.renderBlock(box, 0, new Translation(wire.x(), wire.y(), wire.z()), new IconTransformation(icon), null); } } \ No newline at end of file diff --git a/src/main/scala/resonantinduction/electrical/wire/trait/TraitConductor.java b/src/main/scala/resonantinduction/electrical/wire/trait/TraitConductor.java deleted file mode 100644 index 7b7870795..000000000 --- a/src/main/scala/resonantinduction/electrical/wire/trait/TraitConductor.java +++ /dev/null @@ -1,200 +0,0 @@ -package resonantinduction.electrical.wire.trait; - -import java.util.HashSet; -import java.util.Set; - -import net.minecraftforge.common.util.ForgeDirection; -import universalelectricity.api.energy.IConductor; -import universalelectricity.api.energy.IEnergyNetwork; -import universalelectricity.api.net.IConnector; -import codechicken.multipart.PartMap; -import codechicken.multipart.TMultiPart; -import codechicken.multipart.TileMultipart; - -public class TraitConductor extends TileMultipart implements IConductor -{ - public Set ueInterfaces = new HashSet(); - - @Override - public void copyFrom(TileMultipart that) - { - super.copyFrom(that); - - if (that instanceof TraitConductor) - { - this.ueInterfaces = ((TraitConductor) that).ueInterfaces; - } - } - - @Override - public void bindPart(TMultiPart part) - { - super.bindPart(part); - - if (part instanceof IConductor) - { - this.ueInterfaces.add((IConductor) part); - } - } - - @Override - public void partRemoved(TMultiPart part, int p) - { - super.partRemoved(part, p); - - if (part instanceof IConductor) - { - this.ueInterfaces.remove(part); - } - } - - @Override - public void clearParts() - { - super.clearParts(); - this.ueInterfaces.clear(); - } - - @Override - public Object[] getConnections() - { - for (IConductor conductor : this.ueInterfaces) - { - return conductor.getConnections(); - } - - return null; - } - - @Override - public IEnergyNetwork getNetwork() - { - return null; - } - - @Override - public void setNetwork(IEnergyNetwork network) - { - for (IConductor conductor : this.ueInterfaces) - { - conductor.setNetwork(network); - } - } - - @Override - public boolean canConnect(ForgeDirection direction, Object source) - { - for (IConductor conductor : this.ueInterfaces) - { - if (conductor.canConnect(direction.getOpposite(), source)) - { - return true; - } - } - - return false; - } - - @Override - public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive) - { - /** - * Try out different sides to try to inject energy into. - */ - if (partMap(from.ordinal()) instanceof IConductor) - { - return ((IConductor) partMap(from.ordinal())).onReceiveEnergy(from, receive, doReceive); - } - - for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - { - if (dir != from.getOpposite()) - { - TMultiPart part = this.partMap(dir.ordinal()); - - if (this.ueInterfaces.contains(part)) - { - return ((IConductor) part).onReceiveEnergy(from, receive, doReceive); - } - } - } - - if (partMap(PartMap.CENTER.ordinal()) instanceof IConductor) - { - return ((IConductor) partMap(PartMap.CENTER.ordinal())).onReceiveEnergy(from, receive, doReceive); - } - - return 0; - } - - @Override - public long onExtractEnergy(ForgeDirection from, long extract, boolean doExtract) - { - return 0; - } - - @Override - public float getResistance() - { - long energyLoss = 0; - - if (this.ueInterfaces.size() > 0) - { - for (IConductor conductor : this.ueInterfaces) - { - energyLoss += conductor.getResistance(); - } - - energyLoss /= this.ueInterfaces.size(); - } - - return energyLoss; - } - - @Override - public long getCurrentCapacity() - { - long capacitance = 0; - - if (this.ueInterfaces.size() > 0) - { - for (IConductor conductor : this.ueInterfaces) - { - capacitance += conductor.getCurrentCapacity(); - } - - capacitance /= this.ueInterfaces.size(); - } - - return capacitance; - } - - @Override - public IConductor getInstance(ForgeDirection from) - { - /** - * Try out different sides to try to inject energy into. - */ - if (partMap(from.ordinal()) instanceof IConductor) - { - return (IConductor) partMap(from.ordinal()); - } - - for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - { - TMultiPart part = this.partMap(dir.ordinal()); - - if (this.ueInterfaces.contains(part)) - { - return (IConductor) ((IConductor) part).getInstance(from); - } - } - - if (partMap(PartMap.CENTER.ordinal()) instanceof IConductor) - { - return (IConductor) (IConnector) partMap(PartMap.CENTER.ordinal()); - } - - return null; - } -} diff --git a/src/main/scala/resonantinduction/electrical/wire/trait/TraitEnergyHandler.java b/src/main/scala/resonantinduction/electrical/wire/trait/TraitEnergyHandler.java index 05a85af24..2f139bc4e 100644 --- a/src/main/scala/resonantinduction/electrical/wire/trait/TraitEnergyHandler.java +++ b/src/main/scala/resonantinduction/electrical/wire/trait/TraitEnergyHandler.java @@ -110,7 +110,7 @@ public class TraitEnergyHandler extends TileMultipart implements IEnergyHandler } @Override - public boolean canInterface(ForgeDirection from) + public boolean canConnectEnergy(ForgeDirection from) { if (this.partMap(from.ordinal()) == null) { @@ -122,7 +122,7 @@ public class TraitEnergyHandler extends TileMultipart implements IEnergyHandler if (this.teConductorInterfaces.contains(part)) { - return ((IEnergyHandler) part).canInterface(from); + return ((IEnergyHandler) part).canConnectEnergy(from); } } } @@ -130,7 +130,7 @@ public class TraitEnergyHandler extends TileMultipart implements IEnergyHandler for (IEnergyHandler handler : this.teInterfaces) { - return handler.canInterface(from); + return handler.canConnectEnergy(from); } return false;