Initial work on the fmp cable
This commit is contained in:
parent
1a68b5c7c6
commit
59bf4d1a9b
4 changed files with 165 additions and 0 deletions
|
@ -2,6 +2,7 @@ package techreborn.compat;
|
|||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import techreborn.compat.fmp.FMPFactory;
|
||||
import techreborn.compat.waila.CompatModuleWaila;
|
||||
|
||||
public class CompatManager {
|
||||
|
@ -12,5 +13,8 @@ public class CompatManager {
|
|||
{
|
||||
new CompatModuleWaila().init(event);
|
||||
}
|
||||
if(Loader.isModLoaded("ForgeMultipart")){
|
||||
FMPFactory.init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
117
src/main/java/techreborn/compat/fmp/CablePart.java
Normal file
117
src/main/java/techreborn/compat/fmp/CablePart.java
Normal file
|
@ -0,0 +1,117 @@
|
|||
package techreborn.compat.fmp;
|
||||
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.NormalOcclusionTest;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import ic2.api.energy.event.EnergyTileLoadEvent;
|
||||
import ic2.api.energy.event.EnergyTileUnloadEvent;
|
||||
import ic2.api.energy.tile.IEnergyConductor;
|
||||
import ic2.api.energy.tile.IEnergyTile;
|
||||
import ic2.core.IC2;
|
||||
import ic2.core.ITickCallback;
|
||||
import ic2.core.block.wiring.TileEntityCable;
|
||||
import ic2.core.block.wiring.TileEntityLuminator;
|
||||
import ic2.core.network.NetworkManager;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CablePart extends TMultiPart implements IEnergyConductor, JNormalOcclusion {
|
||||
|
||||
public boolean addedToEnergyNet = false;
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "TRCable";
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getConductionLoss() {
|
||||
return 1D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInsulationEnergyAbsorption() {
|
||||
return 2048;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInsulationBreakdownEnergy() {
|
||||
return 9001.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getConductorBreakdownEnergy() {
|
||||
return 2048;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeInsulation() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeConductor() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptsEnergyFrom(TileEntity te, ForgeDirection forgeDirection) {
|
||||
return canInteractWith(te);
|
||||
}
|
||||
|
||||
public boolean canInteractWith(TileEntity te) {
|
||||
return !(te instanceof IEnergyTile)?false:(te instanceof TileEntityLuminator?((TileEntityLuminator)te).canCableConnectFrom(this.x(), this.y(), this.z()):true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean emitsEnergyTo(TileEntity tileEntity, ForgeDirection forgeDirection) {
|
||||
return canInteractWith(tileEntity);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
if(IC2.platform.isSimulating() && this.addedToEnergyNet) {
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
|
||||
this.addedToEnergyNet = false;
|
||||
}
|
||||
super.onChunkUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkLoad() {
|
||||
super.onChunkLoad();
|
||||
if(IC2.platform.isSimulating()) {
|
||||
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
|
||||
this.addedToEnergyNet = true;
|
||||
this.onNeighborChanged();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean occlusionTest(TMultiPart npart) {
|
||||
return NormalOcclusionTest.apply(this, npart);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Cuboid6> getOcclusionBoxes() {
|
||||
List<Cuboid6> cubes = new ArrayList<Cuboid6>();
|
||||
cubes.add(new Cuboid6(0, 0, 0, 1, 1, 1));
|
||||
return cubes;
|
||||
}
|
||||
|
||||
|
||||
}
|
27
src/main/java/techreborn/compat/fmp/FMPFactory.java
Normal file
27
src/main/java/techreborn/compat/fmp/FMPFactory.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
package techreborn.compat.fmp;
|
||||
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraft.item.Item;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
|
||||
public class FMPFactory implements MultiPartRegistry.IPartFactory {
|
||||
|
||||
static Item cableItem;
|
||||
|
||||
@Override
|
||||
public TMultiPart createPart(String s, boolean b) {
|
||||
if(s.equals("TRCable")){
|
||||
return new CablePart();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void init(){
|
||||
MultiPartRegistry.registerParts(new FMPFactory(), new String[]{"TRCable"});
|
||||
cableItem = new ItemCable().setCreativeTab(TechRebornCreativeTab.instance).setUnlocalizedName("TRCable");
|
||||
GameRegistry.registerItem(cableItem, "TRCable");
|
||||
}
|
||||
|
||||
}
|
17
src/main/java/techreborn/compat/fmp/ItemCable.java
Normal file
17
src/main/java/techreborn/compat/fmp/ItemCable.java
Normal file
|
@ -0,0 +1,17 @@
|
|||
package techreborn.compat.fmp;
|
||||
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
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;
|
||||
|
||||
public class ItemCable extends JItemMultiPart {
|
||||
@Override
|
||||
public TMultiPart newPart(ItemStack itemStack, EntityPlayer entityPlayer, World world, BlockCoord blockCoord, int i, Vector3 vector3) {
|
||||
return MultiPartRegistry.createPart("TRCable", false);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue