added Item for ItemRailing, and registered in Multipart factory including in load phase, EXPERIMENTAL
This commit is contained in:
parent
35a430dc7e
commit
8485dd2e59
5 changed files with 85 additions and 5 deletions
|
@ -21,6 +21,7 @@ import resonantinduction.electrical.generator.TileMotor;
|
||||||
import resonantinduction.electrical.generator.solar.TileSolarPanel;
|
import resonantinduction.electrical.generator.solar.TileSolarPanel;
|
||||||
import resonantinduction.electrical.generator.thermopile.BlockThermopile;
|
import resonantinduction.electrical.generator.thermopile.BlockThermopile;
|
||||||
import resonantinduction.electrical.generator.thermopile.TileThermopile;
|
import resonantinduction.electrical.generator.thermopile.TileThermopile;
|
||||||
|
import resonantinduction.electrical.itemrailing.ItemItemRailing;
|
||||||
import resonantinduction.electrical.levitator.ItemLevitator;
|
import resonantinduction.electrical.levitator.ItemLevitator;
|
||||||
import resonantinduction.electrical.multimeter.ItemMultimeter;
|
import resonantinduction.electrical.multimeter.ItemMultimeter;
|
||||||
import resonantinduction.electrical.tesla.BlockTesla;
|
import resonantinduction.electrical.tesla.BlockTesla;
|
||||||
|
@ -79,6 +80,9 @@ public class Electrical
|
||||||
public static Block blockBattery;
|
public static Block blockBattery;
|
||||||
public static Block blockEncoder;
|
public static Block blockEncoder;
|
||||||
|
|
||||||
|
// Railings
|
||||||
|
public static Item itemRailing;
|
||||||
|
|
||||||
// Generators
|
// Generators
|
||||||
public static Block blockSolarPanel;
|
public static Block blockSolarPanel;
|
||||||
public static Block blockMotor;
|
public static Block blockMotor;
|
||||||
|
@ -123,6 +127,10 @@ public class Electrical
|
||||||
|
|
||||||
// Quantum
|
// Quantum
|
||||||
itemQuantumGlyph = contentRegistry.createItem(ItemQuantumGlyph.class);
|
itemQuantumGlyph = contentRegistry.createItem(ItemQuantumGlyph.class);
|
||||||
|
|
||||||
|
//Railings
|
||||||
|
itemRailing = contentRegistry.createItem(ItemItemRailing.class);
|
||||||
|
|
||||||
Settings.CONFIGURATION.save();
|
Settings.CONFIGURATION.save();
|
||||||
|
|
||||||
OreDictionary.registerOre("wire", itemWire);
|
OreDictionary.registerOre("wire", itemWire);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package resonantinduction.electrical;
|
package resonantinduction.electrical;
|
||||||
|
|
||||||
import resonantinduction.electrical.charger.PartCharger;
|
import resonantinduction.electrical.charger.PartCharger;
|
||||||
|
import resonantinduction.electrical.itemrailing.PartRailing;
|
||||||
import resonantinduction.electrical.levitator.PartLevitator;
|
import resonantinduction.electrical.levitator.PartLevitator;
|
||||||
import resonantinduction.electrical.multimeter.PartMultimeter;
|
import resonantinduction.electrical.multimeter.PartMultimeter;
|
||||||
import resonantinduction.electrical.transformer.PartTransformer;
|
import resonantinduction.electrical.transformer.PartTransformer;
|
||||||
|
@ -18,7 +19,7 @@ public class MultipartElectrical implements IPartFactory
|
||||||
{
|
{
|
||||||
public static MultipartElectrical INSTANCE;
|
public static MultipartElectrical INSTANCE;
|
||||||
|
|
||||||
public static final String[] PART_TYPES = { "resonant_induction_quantum_glyph", "resonant_induction_wire", "resonant_induction_switch_wire", "resonant_induction_flat_wire", "resonant_induction_flat_switch_wire", "resonant_induction_multimeter", "resonant_induction_transformer", "resonant_induction_charger", "resonant_induction_levitator" };
|
public static final String[] PART_TYPES = { "resonant_induction_quantum_glyph", "resonant_induction_wire", "resonant_induction_switch_wire", "resonant_induction_flat_wire", "resonant_induction_flat_switch_wire", "resonant_induction_multimeter", "resonant_induction_transformer", "resonant_induction_charger", "resonant_induction_levitator", "resonant_induction_itemrailing" };
|
||||||
|
|
||||||
public MultipartElectrical()
|
public MultipartElectrical()
|
||||||
{
|
{
|
||||||
|
@ -51,6 +52,8 @@ public class MultipartElectrical implements IPartFactory
|
||||||
return new PartLevitator();
|
return new PartLevitator();
|
||||||
else if (name.equals("resonant_induction_quantum_glyph"))
|
else if (name.equals("resonant_induction_quantum_glyph"))
|
||||||
return new PartQuantumGlyph();
|
return new PartQuantumGlyph();
|
||||||
|
else if (name.equals("resonant_induction_itemrailing"))
|
||||||
|
return new PartRailing();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package resonantinduction.electrical.itemrailing;
|
package resonantinduction.electrical.itemrailing;
|
||||||
|
|
||||||
import calclavia.lib.grid.NodeGrid;
|
import calclavia.lib.grid.NodeGrid;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import resonantinduction.electrical.itemrailing.interfaces.IItemRailing;
|
import resonantinduction.electrical.itemrailing.interfaces.IItemRailing;
|
||||||
import resonantinduction.electrical.itemrailing.interfaces.IItemRailingTransfer;
|
import resonantinduction.electrical.itemrailing.interfaces.IItemRailingTransfer;
|
||||||
|
|
||||||
|
@ -40,10 +41,15 @@ public class GridRailing extends NodeGrid<NodeRailing>
|
||||||
return arr[0];
|
return arr[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public IItemRailing chooseNextGoal(IItemRailingTransfer itemwrapper)
|
public IItemRailing chooseNextInstantGoal(IItemRailingTransfer itemwrapper)
|
||||||
{
|
{
|
||||||
IItemRailing[] arr = (IItemRailing[]) itemwrapper.getRailing().getConnectionMap().entrySet().toArray();
|
IItemRailing[] arr = (IItemRailing[]) itemwrapper.getRailing().getConnectionMap().entrySet().toArray();
|
||||||
Arrays.sort(arr, new RailingDistanceComparator(itemwrapper.getEndGoal()));
|
Arrays.sort(arr, new RailingDistanceComparator(itemwrapper.getEndGoal()));
|
||||||
return arr[0];
|
return arr[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onItemEnterGrid(IItemRailing railing, ItemStack item)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
package resonantinduction.electrical.itemrailing;
|
||||||
|
|
||||||
|
import codechicken.lib.vec.BlockCoord;
|
||||||
|
import codechicken.lib.vec.Vector3;
|
||||||
|
import codechicken.multipart.ControlKeyModifer;
|
||||||
|
import codechicken.multipart.JItemMultiPart;
|
||||||
|
import codechicken.multipart.MultiPartRegistry;
|
||||||
|
import codechicken.multipart.TMultiPart;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
import resonantinduction.core.MultipartUtility;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tgame14
|
||||||
|
* @since 17/04/14
|
||||||
|
*/
|
||||||
|
public class ItemItemRailing extends JItemMultiPart
|
||||||
|
{
|
||||||
|
public ItemItemRailing(int id)
|
||||||
|
{
|
||||||
|
super(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TMultiPart newPart(ItemStack itemStack, EntityPlayer player, World world, BlockCoord pos, int side, Vector3 vhit)
|
||||||
|
{
|
||||||
|
BlockCoord onPos = pos.copy().offset(side ^ 1);
|
||||||
|
|
||||||
|
if (player.isSneaking() && !ControlKeyModifer.isControlDown(player))
|
||||||
|
{
|
||||||
|
PartRailing railing = (PartRailing) MultiPartRegistry.createPart("resonant_induction_itemrailing", false);
|
||||||
|
|
||||||
|
if (railing != null)
|
||||||
|
{
|
||||||
|
railing.preparePlacement(itemStack.getItemDamage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return railing;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!MultipartUtility.canPlaceWireOnSide(world, onPos.x, onPos.y, onPos.z, ForgeDirection.getOrientation(side), false))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
PartRailing railing = (PartRailing) MultiPartRegistry.createPart("resonant_induction_itemrailing", false);
|
||||||
|
|
||||||
|
if (railing != null)
|
||||||
|
{
|
||||||
|
railing.preparePlacement(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
return railing;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package resonantinduction.electrical.itemrailing;
|
||||||
|
|
||||||
import calclavia.lib.grid.INode;
|
import calclavia.lib.grid.INode;
|
||||||
import calclavia.lib.grid.INodeProvider;
|
import calclavia.lib.grid.INodeProvider;
|
||||||
|
import codechicken.multipart.TileMultipart;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -39,6 +40,7 @@ public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, I
|
||||||
public PartRailing ()
|
public PartRailing ()
|
||||||
{
|
{
|
||||||
super(Electrical.itemInsulation);
|
super(Electrical.itemInsulation);
|
||||||
|
this.material = EnumRailing.DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,7 +106,8 @@ public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, I
|
||||||
@Override
|
@Override
|
||||||
protected boolean canConnectTo (TileEntity tile, ForgeDirection to)
|
protected boolean canConnectTo (TileEntity tile, ForgeDirection to)
|
||||||
{
|
{
|
||||||
return tile instanceof IItemRailing ? node.canConnectToRailing((IItemRailing) tile, to) : tile instanceof IInventory ? true : false;
|
Object obj = tile instanceof TileMultipart ? ((TileMultipart) tile).partMap(ForgeDirection.UNKNOWN.ordinal()) : tile;
|
||||||
|
return obj instanceof IInventory ? true : obj instanceof PartRailing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -128,13 +131,13 @@ public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, I
|
||||||
@Override
|
@Override
|
||||||
public void setMaterial (int i)
|
public void setMaterial (int i)
|
||||||
{
|
{
|
||||||
|
this.material = EnumRailing.values()[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ItemStack getItem ()
|
protected ItemStack getItem ()
|
||||||
{
|
{
|
||||||
return null;
|
return new ItemStack(Electrical.itemRailing);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue