From d3e7347ac18cad666b64b44b7f8dbf1f5406a5e4 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Fri, 21 Feb 2014 17:00:34 +0800 Subject: [PATCH] Multimeter now implements PartFace --- .../electrical/multimeter/PartMultimeter.java | 88 +++--------------- .../core/ResonantInduction.java | 2 +- .../core/prefab/part/PartFace.java | 12 ++- .../textures/items/hammer.png | Bin 1071 -> 888 bytes 4 files changed, 24 insertions(+), 78 deletions(-) diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java index f89f0ea9..457f777c 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java @@ -16,6 +16,7 @@ import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; import resonantinduction.api.mechanical.IMechanical; import resonantinduction.core.ResonantInduction; +import resonantinduction.core.prefab.part.PartFace; import resonantinduction.electrical.Electrical; import universalelectricity.api.CompatibilityModule; import universalelectricity.api.energy.IConductor; @@ -25,15 +26,10 @@ import calclavia.lib.network.IPacketReceiver; import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataOutput; 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.IRedstonePart; -import codechicken.multipart.JCuboidPart; -import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.NormalOcclusionTest; -import codechicken.multipart.TFacePart; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; @@ -49,22 +45,8 @@ import cpw.mods.fml.relauncher.SideOnly; * @author Calclavia * */ -public class PartMultimeter extends JCuboidPart implements IConnector, TFacePart, JNormalOcclusion, IRedstonePart, IPacketReceiver +public class PartMultimeter extends PartFace implements IConnector, IRedstonePart, IPacketReceiver { - public static Cuboid6[][] bounds = new Cuboid6[6][2]; - - static - { - bounds[0][0] = new Cuboid6(1 / 8D, 0, 0, 7 / 8D, 1 / 8D, 1); - bounds[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); - bounds[s][0] = bounds[0][0].copy().apply(t); - bounds[s][1] = bounds[0][1].copy().apply(t); - } - } - public enum DetectMode { NONE("none"), LESS_THAN("lessThan"), LESS_THAN_EQUAL("lessThanOrEqual"), EQUAL("equal"), @@ -85,18 +67,10 @@ public class PartMultimeter extends JCuboidPart implements IConnector getOcclusionBoxes() - { - return Arrays.asList(bounds[this.side]); - } - - @Override - public boolean occlusionTest(TMultiPart npart) - { - return NormalOcclusionTest.apply(this, npart); - } - @Override public int redstoneConductionMap() { @@ -515,20 +465,6 @@ public class PartMultimeter extends JCuboidPart implements IConnector getDrops() - { - List drops = new ArrayList(); - drops.add(getItem()); - return drops; - } - - @Override - public ItemStack pickItem(MovingObjectPosition hit) - { - return getItem(); - } - @Override @SideOnly(Side.CLIENT) public void renderDynamic(Vector3 pos, float frame, int pass) diff --git a/src/main/java/resonantinduction/core/ResonantInduction.java b/src/main/java/resonantinduction/core/ResonantInduction.java index 84ad8578..7e6311a2 100644 --- a/src/main/java/resonantinduction/core/ResonantInduction.java +++ b/src/main/java/resonantinduction/core/ResonantInduction.java @@ -116,7 +116,7 @@ public class ResonantInduction GameRegistry.registerItem(itemDust, itemDust.getUnlocalizedName()); GameRegistry.registerItem(itemRefinedDust, itemRefinedDust.getUnlocalizedName()); - // Already registered wih ContentRegistry + // Already registered with ContentRegistry // GameRegistry.registerTileEntity(TileMaterial.class, "ri_material"); GameRegistry.registerTileEntity(TileFluidMixture.class, "ri_fluid_mixture"); proxy.preInit(); diff --git a/src/main/java/resonantinduction/core/prefab/part/PartFace.java b/src/main/java/resonantinduction/core/prefab/part/PartFace.java index 7f164a35..42416308 100644 --- a/src/main/java/resonantinduction/core/prefab/part/PartFace.java +++ b/src/main/java/resonantinduction/core/prefab/part/PartFace.java @@ -17,7 +17,9 @@ import codechicken.lib.vec.Vector3; import codechicken.microblock.FaceMicroClass; import codechicken.multipart.JCuboidPart; import codechicken.multipart.JNormalOcclusion; +import codechicken.multipart.NormalOcclusionTest; import codechicken.multipart.TFacePart; +import codechicken.multipart.TMultiPart; public abstract class PartFace extends JCuboidPart implements JNormalOcclusion, TFacePart { @@ -41,9 +43,11 @@ public abstract class PartFace extends JCuboidPart implements JNormalOcclusion, /** The relative direction this block faces. */ public byte facing = 0; + protected int ticks; + public void preparePlacement(int side, int facing) { - this.placementSide = ForgeDirection.getOrientation( side); + this.placementSide = ForgeDirection.getOrientation(side); this.facing = (byte) (facing - 2); } @@ -91,6 +95,12 @@ public abstract class PartFace extends JCuboidPart implements JNormalOcclusion, return Arrays.asList(bounds[this.placementSide.ordinal()]); } + @Override + public boolean occlusionTest(TMultiPart npart) + { + return NormalOcclusionTest.apply(this, npart); + } + @Override public Iterable getDrops() { diff --git a/src/main/resources/assets/resonantinduction/textures/items/hammer.png b/src/main/resources/assets/resonantinduction/textures/items/hammer.png index 3188960dada384d913e9411f6b21b124fa578b40..cbd90fb13bc20a3f8ea73bc7960f3242eaeb2a00 100644 GIT binary patch delta 778 zcmV+l1NHo`2>1q&dw&AwNkl{+Lt!b^wB@Hy3ZI4BgYE^+J|p4d!4n<-e=~_ zMF-%&!WEn0^z<)IPX5p-fBYg`Q7cDB-%+l7MyXUnxm+fR?|-X>D{A5AuOHaj+Q8a} zRpj#1SXz3AVyQ?&(0yDPM7Uc-P&O!WEvi5($H%|1x3`DYwH4%Na(FZJ8WWS_*x1}q zu0&=qjG#w=EbGax&Q%3kIXwJ^VzG$ALIL9wW5{GOn9fa6JdaIkBILKg?bJiG-Xps@ zR~0k^YhZnS9e;&F0dGgMn4Fqanps|cPgmg!DwPV^>htP^X4u``#m>$S78e&WMGdgM zFgHI-O)O)7e;)@2U&*GsKW=3oFj(Xg4FD z&ml*}YMWpiGnGmqkw}pJET?V~t+2vAS%OQl!E6>_GJhJdK$|d|&0=qGOMx)AD71bnKNycP6 z?Y5tY~C%*v$7S z};&%$AwvKS7tz zK)YT0qjnWsu}b#UV}v{wNKHKF*TEGT124Sj@_)7?Ae$-Vds+ckd^ymi{KEx1Z?`x@ z75F_)OlNwO-R^e^B&p4}!TAaMoXRc-1fvmN>GBUtt5FWDxZmS~!_h&XR1>Uice8qi za$tWllEVtKU{bC?t>LygKM@QD==H66zc&I`yi2&^-2vS{<+NH0;9O@T00000NkvXX It^-0~f?HB?rT_o{ delta 962 zcmV;z13mos2CoQ^dw&C-Nkli@t!Be%R2q8jRo>ti=WQL83Piw&5Q;#Qm;~Y^0Vov;$W^J{qSDZF?LtL-!KTf9 zGNFWR9F&yS3V)FV)~!i6F|;LB4w4Q zky6(Ba2V3mWe3hG6)9}PRGA#I(tpySNUMFvsH<*~o76{wtuY+F zk_ws!WhqLSV@qEr5=ZIHZbaVul_YY zqEoUPLrG~#@k}~I`6f+vWl>)KbhOOU+mab&sS`E@L$tir1ja`8Cn6gUJ^HK}=33c{ zV2J)s^?&G?7jp=*r7-MMz4##$V6Zb5x|=q98}sZDAR7IYY_X+n- z%puxRL=ICt#r_UUH27Sq$$+N>@9(giC6X_uXv)zX!G`b;WK8(n`FIbet(i~QP4g&+ zi3=`E41F*&$9=ACVr1jN-Xch~8F@b(MlL;xIG~&wpMSWNKsFvogFwlKpeHfZxc~wK z>wkTI_jb(JwkbhrGw^=e4YR@3!Q2z7Z-K!=%-434NMkcZ|0Ww}fwMh^KA5UezqjiFS3d*#nz=A+l>phUosaCPXV`XTT03_`>?2aoh2Dml&{Y?A5n1@K)Tc#SKP)tM k)-5~!;fZ=0hr{9g0|U70=Qx?}4gdfE07*qoM6N<$g4y)ex&QzG