Advertisement
Guest User

Conveyor Issue Relationships

a guest
Aug 12th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.84 KB | None | 0 0
  1. //////////////// Main Class ////////////////
  2. package net.cooldude.factory;
  3.  
  4. import net.cooldude.factory.blocks.FactoryBlocks;
  5. import net.cooldude.factory.items.FactoryItems;
  6. import net.cooldude.factory.proxy.CommonProxy;
  7. import net.minecraft.creativetab.CreativeTabs;
  8. import net.minecraft.init.Items;
  9. import net.minecraft.item.Item;
  10. import cpw.mods.fml.common.Mod;
  11. import cpw.mods.fml.common.Mod.EventHandler;
  12. import cpw.mods.fml.common.Mod.Instance;
  13. import cpw.mods.fml.common.SidedProxy;
  14. import cpw.mods.fml.common.event.FMLInitializationEvent;
  15. import cpw.mods.fml.common.event.FMLPostInitializationEvent;
  16. import cpw.mods.fml.common.event.FMLPreInitializationEvent;
  17.  
  18. @Mod(modid = FactoryMod.MODID, name = FactoryMod.NAME, version = FactoryMod.VERSION)
  19. public class FactoryMod {
  20.  
  21.     public static final String MODID = "factory";
  22.     public static final String NAME = "FactoryCraft";
  23.     public static final String VERSION = "1.0";
  24.    
  25.     public static final String CLIENT_PROXY = "net.cooldude.factory.proxy.ClientProxy";
  26.     public static final String SERVER_PROXY = "net.cooldude.factory.proxy.CommonProxy";
  27.    
  28.     @SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY)
  29.     public static CommonProxy proxy;
  30.    
  31.     @Instance
  32.     public static FactoryMod instance;
  33.    
  34.    
  35.     public static CreativeTabs tabFactory = new CreativeTabs("tabFactory") {
  36.        
  37.         @Override
  38.         public Item getTabIconItem() {
  39.             return Items.iron_ingot;
  40.         }
  41.     };
  42.    
  43.     @EventHandler
  44.     public void preInit(FMLPreInitializationEvent e) {
  45.         FactoryBlocks.init();
  46.         FactoryBlocks.register();
  47.         FactoryBlocks.registerTileEntities();
  48.        
  49.         FactoryItems.item();
  50.         FactoryItems.register();
  51.     }
  52.    
  53.     @EventHandler
  54.     public void init(FMLInitializationEvent e) {
  55.        
  56.     }
  57.    
  58.     @EventHandler
  59.     public void postInit(FMLPostInitializationEvent e) {
  60.        
  61.     }
  62.    
  63. }
  64.  
  65. //////////////// Blocks Class (FactoryBlocks) ////////////////
  66. package net.cooldude.factory.blocks;
  67.  
  68. import cpw.mods.fml.common.registry.GameRegistry;
  69. import net.cooldude.factory.FactoryMod;
  70. import net.minecraft.block.Block;
  71. import net.minecraft.tileentity.TileEntityComparator;
  72.  
  73. public class FactoryBlocks {
  74.  
  75.     public static Block conveyor;
  76.    
  77.     public static void init() {
  78.         conveyor = new BlockConveyor();
  79.     }
  80.  
  81.     public static void register() {
  82.         GameRegistry.registerBlock(conveyor, "conveyor");
  83.     }
  84.  
  85.     public static void registerTileEntities() {
  86.         GameRegistry.registerTileEntity(TileEntityComparator.class, FactoryMod.MODID + "_conveyor");
  87.     }
  88.  
  89. }
  90.  
  91. //////////////// Conveyor Block Class ////////////////
  92. package net.cooldude.factory.blocks;
  93.  
  94. import net.cooldude.factory.FactoryMod;
  95. import net.cooldude.factory.blocks.tile.TileEntityConveyor;
  96. import net.minecraft.block.Block;
  97. import net.minecraft.block.BlockContainer;
  98. import net.minecraft.block.material.Material;
  99. import net.minecraft.client.renderer.texture.IIconRegister;
  100. import net.minecraft.entity.Entity;
  101. import net.minecraft.entity.EntityLivingBase;
  102. import net.minecraft.item.ItemStack;
  103. import net.minecraft.tileentity.TileEntity;
  104. import net.minecraft.util.IIcon;
  105. import net.minecraft.util.MathHelper;
  106. import net.minecraft.world.World;
  107. import cpw.mods.fml.relauncher.Side;
  108. import cpw.mods.fml.relauncher.SideOnly;
  109.  
  110. public class BlockConveyor extends BlockContainer {
  111.  
  112.     @SideOnly(Side.CLIENT)
  113.     public IIcon[] icon_top;
  114.     @SideOnly(Side.CLIENT)
  115.     public IIcon icon_side;
  116.     @SideOnly(Side.CLIENT)
  117.     public IIcon icon_front;
  118.     @SideOnly(Side.CLIENT)
  119.     public IIcon icon_bottom;
  120.    
  121.    
  122.     public BlockConveyor() {
  123.         super(Material.iron);
  124.         this.setBlockName("conveyor");
  125.         this.setCreativeTab(FactoryMod.tabFactory);
  126.        
  127.         float pixel = 1f / 16f;
  128.         this.setBlockBounds(0, 0, 0, 1, pixel * 6f, 1);
  129.     }
  130.    
  131.     @Override
  132.     public void registerBlockIcons(IIconRegister reg) {
  133.         icon_top = new IIcon[6];
  134.         for(int i = 0;i < 6; i ++) {
  135.             icon_top[i] = reg.registerIcon(FactoryMod.MODID + ":conveyor_top_" + (i - 2));
  136.         }
  137.         icon_side = reg.registerIcon(FactoryMod.MODID + ":conveyor_side");
  138.         icon_front = reg.registerIcon(FactoryMod.MODID + ":conveyor_front");
  139.         icon_bottom = reg.registerIcon(FactoryMod.MODID + ":conveyor_bottom");
  140.     }
  141.    
  142.     @Override
  143.     public IIcon getIcon(int side, int meta) {
  144.         if(side == 1) {
  145.             if(meta < 2) {
  146.                 return icon_top[3];
  147.             }
  148.             return icon_top[meta];
  149.         }
  150.         if(side == 0) {
  151.             return icon_bottom;
  152.         }
  153.         if((side == 4 || side == 5) && (meta == 2 || meta == 3)) {
  154.             return icon_side;
  155.         }
  156.         if((side == 2 || side == 3) && (meta == 4 || meta == 5)) {
  157.             return icon_side;
  158.         }
  159.        
  160.         return icon_front;
  161.     }
  162.    
  163.     @Override
  164.     public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase el, ItemStack stack) {
  165.         int l = MathHelper.floor_double((double)(el.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
  166.  
  167.         if (l == 0)
  168.         {
  169.             world.setBlockMetadataWithNotify(x, y, z, 2, 2);
  170.         }
  171.  
  172.         if (l == 1)
  173.         {
  174.             world.setBlockMetadataWithNotify(x, y, z, 5, 2);
  175.         }
  176.  
  177.         if (l == 2)
  178.         {
  179.             world.setBlockMetadataWithNotify(x, y, z, 3, 2);
  180.         }
  181.  
  182.         if (l == 3)
  183.         {
  184.             world.setBlockMetadataWithNotify(x, y, z, 4, 2);
  185.         }
  186.        
  187.         System.out.println(world.getBlockMetadata(x, y, z));
  188.     }
  189.  
  190.     @Override
  191.     public TileEntity createNewTileEntity(World world, int meta) {
  192.         return new TileEntityConveyor(0.1f);
  193.     }
  194.    
  195.     @Override
  196.     public boolean isOpaqueCube() {
  197.         return false;
  198.     }
  199.  
  200.     @Override
  201.     public boolean renderAsNormalBlock() {
  202.         return false;
  203.     }
  204.  
  205. }
  206.  
  207. //////////////// Conveyor Tileentity Class ////////////////
  208. package net.cooldude.factory.blocks.tile;
  209.  
  210. import java.util.List;
  211.  
  212. import net.minecraft.entity.Entity;
  213. import net.minecraft.nbt.NBTTagCompound;
  214. import net.minecraft.tileentity.TileEntity;
  215. import net.minecraft.util.AxisAlignedBB;
  216.  
  217. public class TileEntityConveyor extends TileEntity {
  218.  
  219.     public final float speed;
  220.  
  221.     public TileEntityConveyor(float speed) {
  222.         this.speed = speed;
  223.     }
  224.  
  225.     @Override
  226.     public void updateEntity() {
  227.         List<Entity> entities = worldObj.getEntitiesWithinAABB(Entity.class,
  228.                 AxisAlignedBB.getBoundingBox(xCoord, yCoord + 0.1, zCoord,
  229.                         xCoord + 1.0, yCoord + 1.0, zCoord + 1.0));
  230.  
  231.         int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
  232.        
  233.         System.out.println(worldObj.isRemote);
  234.        
  235.         for (Entity e : entities) {
  236.            
  237.             if(worldObj.isRemote) {
  238.                 if (meta == 2) {
  239.                     e.setVelocity(e.motionX, e.motionY, -speed);
  240.                 }
  241.                 if (meta == 3) {
  242.                     e.setVelocity(e.motionX, e.motionY, speed);
  243.                 }
  244.                 if (meta == 4) {
  245.                     e.setVelocity(-speed, e.motionY, e.motionZ);
  246.                 }
  247.                 if (meta == 5) {
  248.                     e.setVelocity(speed, e.motionY, e.motionZ);
  249.                 }
  250.             } else {
  251.                 if (meta == 2) {
  252.                     e.posZ -= speed;
  253.                 }
  254.                 if (meta == 3) {
  255.                     e.posZ += speed;
  256.                 }
  257.                 if (meta == 4) {
  258.                     e.posX -= speed;
  259.                 }
  260.                 if (meta == 5) {
  261.                     e.posX += speed;
  262.                 }
  263.             }
  264.         }
  265.     }
  266.  
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement