Fixed all multipart item part placement ID

This commit is contained in:
Calclavia 2014-09-16 12:40:28 +08:00
parent 9aa9090645
commit e76863530c
5 changed files with 50 additions and 86 deletions

View file

@ -8,16 +8,13 @@ import codechicken.multipart._
import net.minecraft.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.tileentity.TileEntity
import net.minecraft.world.World
import resonant.lib.wrapper.WrapList._
import resonantinduction.core.ResonantPartFactory
import resonantinduction.core.prefab.part.IHighlight
import scala.util.control.Breaks._
class ItemQuantumGlyph extends Item with TItemMultiPart with IHighlight
{
setHasSubtypes(true)
override def getUnlocalizedName(itemStack: ItemStack): String =
@ -27,9 +24,10 @@ class ItemQuantumGlyph extends Item with TItemMultiPart with IHighlight
def newPart(itemStack: ItemStack, player: EntityPlayer, world: World, pos: BlockCoord, side: Int, hit: Vector3): TMultiPart =
{
val part: PartQuantumGlyph = MultiPartRegistry.createPart("resonant_induction_quantum_glyph", false).asInstanceOf[PartQuantumGlyph]
var slot: Int = CornerPlacementGrid.getHitSlot(hit, side)
val tile: TileEntity = world.getTileEntity(pos.x, pos.y, pos.z)
val part = ResonantPartFactory.create(classOf[PartQuantumGlyph])
var slot = CornerPlacementGrid.getHitSlot(hit, side)
val tile = world.getTileEntity(pos.x, pos.y, pos.z)
if (tile.isInstanceOf[TileMultipart])
{
val checkPart: TMultiPart = (tile.asInstanceOf[TileMultipart]).partMap(slot)
@ -37,47 +35,28 @@ class ItemQuantumGlyph extends Item with TItemMultiPart with IHighlight
{
side match
{
case 0 =>
slot -= 1
break //todo: break is not supported
case 1 =>
slot += 1
break //todo: break is not supported
case 2 =>
slot -= 2
break //todo: break is not supported
case 3 =>
slot += 2
break //todo: break is not supported
case 4 =>
slot -= 4
break //todo: break is not supported
case 5 =>
slot += 4
break //todo: break is not supported
case 0 => slot -= 1
case 1 => slot += 1
case 2 => slot -= 2
case 3 => slot += 2
case 4 => slot -= 4
case 5 => slot += 4
}
}
else
{
}
}
part.preparePlacement(slot, itemStack.getItemDamage)
return part
}
override def getSubItems(item: Item, tab: CreativeTabs, listToAddTo: List[_])
{
for (i <- 0 until PartQuantumGlyph.MAX_GLYPH)
{
{
listToAddTo.add(new ItemStack(item, 1, i))
}
listToAddTo.add(new ItemStack(item, 1, i))
}
}
def getHighlightType: Int =
{
return 1
}
def getHighlightType: Int = 1
}

View file

@ -1,48 +0,0 @@
package resonantinduction.electrical.levitator;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import resonantinduction.core.prefab.part.IHighlight;
import codechicken.lib.vec.BlockCoord;
import codechicken.lib.vec.Vector3;
import codechicken.microblock.FacePlacementGrid$;
import codechicken.multipart.JItemMultiPart;
import codechicken.multipart.MultiPartRegistry;
import codechicken.multipart.TMultiPart;
public class ItemLevitator extends JItemMultiPart implements IHighlight
{
@Override
@SuppressWarnings("unchecked")
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4)
{
list.add("\u00a7cFrom Dev's - Functionality Disabled");
}
@Override
public TMultiPart newPart(ItemStack itemStack, EntityPlayer player, World world, BlockCoord pos, int side, Vector3 hit)
{
side = FacePlacementGrid$.MODULE$.getHitSlot(hit, side);
PartLevitator part = (PartLevitator) MultiPartRegistry.createPart("resonant_induction_levitator", false);
if (part != null)
{
int l = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int facing = l == 0 ? 2 : (l == 1 ? 5 : (l == 2 ? 3 : (l == 3 ? 4 : 0)));
part.preparePlacement(side, facing);
}
return part;
}
@Override
public int getHighlightType()
{
return 0;
}
}

View file

@ -0,0 +1,29 @@
package resonantinduction.electrical.levitator
import codechicken.lib.vec.{BlockCoord, Vector3}
import codechicken.microblock.FacePlacementGrid
import codechicken.multipart.{TItemMultiPart, TMultiPart}
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.util.MathHelper
import net.minecraft.world.World
import resonantinduction.core.ResonantPartFactory
import resonantinduction.core.prefab.part.IHighlight
class ItemLevitator extends Item with TItemMultiPart with IHighlight
{
def newPart(itemStack: ItemStack, player: EntityPlayer, world: World, pos: BlockCoord, bside: Int, hit: Vector3): TMultiPart =
{
val side = FacePlacementGrid.getHitSlot(hit, bside)
val part: PartLevitator = ResonantPartFactory.create(classOf[PartLevitator])
if (part != null)
{
val l: Int = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3
val facing: Int = if (l == 0) 2 else (if (l == 1) 5 else (if (l == 2) 3 else (if (l == 3) 4 else 0)))
part.preparePlacement(side, facing)
}
return part
}
def getHighlightType: Int = 0
}

View file

@ -14,6 +14,8 @@ import org.lwjgl.input.Keyboard;
import resonant.lib.render.EnumColor;
import resonant.lib.utility.LanguageUtility;
import resonantinduction.core.ResonantPartFactory;
import resonantinduction.core.ResonantPartFactory$;
import resonantinduction.core.prefab.part.IHighlight;
import resonantinduction.electrical.wire.base.WireMaterial;
import codechicken.lib.vec.BlockCoord;
@ -46,7 +48,7 @@ public class ItemMultimeter extends JItemMultiPart implements IHighlight
}
}
PartMultimeter part = (PartMultimeter) MultiPartRegistry.createPart("resonant_induction_multimeter", false);
PartMultimeter part = ResonantPartFactory$.MODULE$.create(PartMultimeter.class);
if (part != null)
{

View file

@ -4,6 +4,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import resonantinduction.core.ResonantPartFactory$;
import resonantinduction.core.prefab.part.IHighlight;
import codechicken.lib.vec.BlockCoord;
import codechicken.lib.vec.Vector3;
@ -11,6 +12,7 @@ import codechicken.microblock.FacePlacementGrid$;
import codechicken.multipart.JItemMultiPart;
import codechicken.multipart.MultiPartRegistry;
import codechicken.multipart.TMultiPart;
import resonantinduction.electrical.multimeter.PartMultimeter;
public class ItemElectricTransformer extends JItemMultiPart implements IHighlight
{
@ -18,7 +20,7 @@ public class ItemElectricTransformer extends JItemMultiPart implements IHighligh
public TMultiPart newPart(ItemStack itemStack, EntityPlayer player, World world, BlockCoord pos, int side, Vector3 hit)
{
side = FacePlacementGrid$.MODULE$.getHitSlot(hit, side);
PartElectricTransformer part = (PartElectricTransformer) MultiPartRegistry.createPart("resonant_induction_transformer", false);
PartElectricTransformer part = ResonantPartFactory$.MODULE$.create(PartElectricTransformer.class);
if (part != null)
{