hassansyyid

TileEntityPowerline

Jun 24th, 2015
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.64 KB | None | 0 0
  1. package com.arisux.avp.entities.tile;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import net.minecraft.block.Block;
  7. import net.minecraft.init.Blocks;
  8. import net.minecraft.nbt.NBTTagCompound;
  9. import net.minecraft.network.NetworkManager;
  10. import net.minecraft.network.Packet;
  11. import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
  12. import net.minecraft.tileentity.TileEntity;
  13. import net.minecraft.world.World;
  14.  
  15. public class TileEntityPowerline extends PoweredTileEntity
  16. {
  17.     public PoweredTileEntity originalpowersource = null;
  18.     public boolean state;
  19.     @Override
  20.     public void onVoltageTick()
  21.     {
  22.         ;
  23.     }
  24.    
  25.     @Override
  26.     public Packet getDescriptionPacket()
  27.     {
  28.         NBTTagCompound nbtTag = new NBTTagCompound();
  29.         this.writeToNBT(nbtTag);
  30.         return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, nbtTag);
  31.     }
  32.  
  33.     @Override
  34.     public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
  35.     {
  36.         this.readFromNBT(packet.func_148857_g());
  37.     }
  38.    
  39.     @Override
  40.     public void writeToNBT(NBTTagCompound nbt)
  41.     {
  42.         super.writeToNBT(nbt);
  43.     }
  44.    
  45.     @Override
  46.     public void readFromNBT(NBTTagCompound nbt)
  47.     {
  48.         super.readFromNBT(nbt);
  49.     }
  50.    
  51.     @Override
  52.     public double getMinOperatingVoltage()
  53.     {
  54.         return 0;
  55.     }
  56.    
  57.     @Override
  58.     public double getMaxOperatingVoltage()
  59.     {
  60.         return 10000;
  61.     }
  62.    
  63.     @Override
  64.     public double getMinOperatingAmps()
  65.     {
  66.         return 0;
  67.     }
  68.    
  69.     @Override
  70.     public double getMaxOperatingAmps()
  71.     {
  72.         return 1000;
  73.     }
  74.    
  75.     @Override
  76.     public double getResistance()
  77.     {
  78.         return 0.002;
  79.     }
  80.    
  81.     @Override
  82.     public boolean canOutputPower()
  83.     {
  84.         updateState();
  85.         getOriginalPowerSource();
  86.         if(isOriginalPowerSourceAttached() && state){
  87.             return true;
  88.         }
  89.         else{
  90.             return false;
  91.         }
  92.     }
  93.    
  94.     public void updateState(){
  95.         try{
  96.         List<PoweredTileEntity> list = new ArrayList<PoweredTileEntity>();
  97.         list.add(this.getTop());
  98.         list.add(this.getBack());
  99.         list.add(this.getBottom());
  100.         list.add(this.getLeft());
  101.         list.add(this.getRight());
  102.         list.add(this.getFront());
  103.         for(PoweredTileEntity p : list){
  104.             if(p.isPowerSource()){
  105.                 state = true;
  106.             }
  107.             else if(p instanceof TileEntityPowerline){
  108.                 TileEntityPowerline te = (TileEntityPowerline) p;
  109.                 boolean itsState = te.state;
  110.                 if(itsState && !this.state){
  111.                     this.state = itsState;
  112.                 }
  113.                 else if(this.state && !itsState){
  114.                     itsState = this.state;
  115.                 }
  116.             }
  117.         }
  118.         }catch(NullPointerException e)
  119.         {
  120.         }
  121.     }
  122.    
  123.     @Override
  124.     public Block getBlockType()
  125.     {
  126.         return Blocks.beacon;
  127.     }
  128.  
  129.     @Override
  130.     public void onOverloadTick()
  131.     {
  132.         ;
  133.     }
  134.  
  135.     @Override
  136.     public void onUnderloadTick()
  137.     {
  138.         ;
  139.     }
  140.  
  141.     @Override
  142.     public boolean isOriginalPowerSourceAttached() {
  143.         try{
  144.             PoweredTileEntity t = this.getPowerSource();
  145.             int x = t.xCoord;
  146.             int y = t.yCoord;
  147.             int z = t.zCoord;
  148.             World world = t.getWorldObj();
  149.             if(world.getTileEntity(x, y, z) instanceof TileEntityRepulsionGenerator){
  150.                 return true;
  151.             }
  152.             else if(world.getTileEntity(x, y, z) instanceof TileEntitySolarPanel){
  153.                 return true;
  154.             }
  155.             else{
  156.                 return false;
  157.             }
  158.         }
  159.         catch(java.lang.NullPointerException e){
  160.             return false;
  161.         }
  162.     }
  163.  
  164.     @Override
  165.     public void getOriginalPowerSource() {
  166.         List<PoweredTileEntity> list = new ArrayList<PoweredTileEntity>();
  167.         list.add(this.getTop());
  168.         list.add(this.getBack());
  169.         list.add(this.getBottom());
  170.         list.add(this.getLeft());
  171.         list.add(this.getRight());
  172.         list.add(this.getFront());
  173.             for(PoweredTileEntity p : list){
  174.                 if(p instanceof TileEntityRepulsionGenerator || p instanceof TileEntityPowerline || p instanceof TileEntitySolarPanel || p instanceof TileEntityTransformer || p instanceof TileEntityNegativeTransformer){
  175.                     if(p instanceof TileEntityRepulsionGenerator){
  176.                         setOriginalPowerSource(p);
  177.                         break;
  178.                     }
  179.                     if(p instanceof TileEntitySolarPanel){
  180.                         setOriginalPowerSource(p);
  181.                         break;
  182.                     }
  183.                     else if(p instanceof TileEntityPowerline && p.getPowerSource() != null){
  184.                         setOriginalPowerSource(p.getPowerSource());
  185.                         break;
  186.                     }
  187.                     else if(p instanceof TileEntityTransformer && p.getPowerSource() != null){
  188.                         setOriginalPowerSource(p.getPowerSource());
  189.                         break;
  190.                     }
  191.                     else if(p instanceof TileEntityNegativeTransformer && p.getPowerSource() != null){
  192.                         setOriginalPowerSource(p.getPowerSource());
  193.                         break;
  194.                     }
  195.                 }
  196.                
  197.             }
  198.     }
  199.    
  200.     @Override
  201.     public void setOriginalPowerSource(PoweredTileEntity e) {
  202.         originalpowersource = e;   
  203.     }
  204.     @Override
  205.     public PoweredTileEntity getPowerSource(){
  206.         if(originalpowersource != null){
  207.                 return originalpowersource;
  208.         }
  209.         return null;
  210.     }
  211. }
Advertisement
Add Comment
Please, Sign In to add comment