majgenrelativity

Untitled

Jun 7th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.71 KB | None | 0 0
  1. package majgenrelativity.forcelasers.tileEntities;
  2.  
  3. import majgenrelativity.forcelasers.MainFile;
  4. import net.minecraft.entity.player.EntityPlayer;
  5. import net.minecraft.inventory.IInventory;
  6. import net.minecraft.item.ItemCoal;
  7. import net.minecraft.item.ItemStack;
  8. import net.minecraft.nbt.NBTTagCompound;
  9. import net.minecraft.nbt.NBTTagList;
  10. import net.minecraft.server.gui.IUpdatePlayerListBox;
  11. import net.minecraft.tileentity.TileEntity;
  12. import net.minecraft.util.BlockPos;
  13. import net.minecraft.util.ChatComponentText;
  14. import net.minecraft.util.IChatComponent;
  15.  
  16.  
  17.  
  18. public class ion_Creater_Tile_Entity extends TileEntity implements IInventory, IUpdatePlayerListBox {
  19. // variable used to store ions across all blocks, items, etc.
  20.  
  21. public int force_lasers_ions = 0;
  22. private boolean do_detect_tanks = true;
  23. private ion_Tank_Tile_Entity tank1;
  24. private ItemStack[] inv;
  25. private double coal_left = 0;
  26. @Override
  27. public String getName() {
  28.  
  29. return("ion_creater");
  30. }
  31.  
  32.  
  33. @Override
  34. public boolean hasCustomName() {
  35. // TODO Auto-generated method stub
  36. return false;
  37. }
  38.  
  39. @Override
  40. public IChatComponent getDisplayName() {
  41.  
  42. return new ChatComponentText("ion_creater");
  43. }
  44.  
  45. @Override
  46. public int getSizeInventory() {
  47.  
  48. return inv.length;
  49. }
  50.  
  51. @Override
  52. public ItemStack getStackInSlot(int slot) {
  53.  
  54. return inv[slot];
  55. }
  56.  
  57. @Override
  58. public ItemStack decrStackSize(int slot, int amt) {
  59.  
  60. ItemStack stack = getStackInSlot(slot);
  61. if(stack != null){
  62. if(stack.stackSize <= amt){
  63. setInventorySlotContents(slot, null);
  64. }else{
  65. stack = stack.splitStack(amt);
  66. if(stack.stackSize == 0){
  67. setInventorySlotContents(slot, null);
  68. }
  69. }
  70. }
  71. return stack;
  72. }
  73.  
  74. @Override
  75. public ItemStack getStackInSlotOnClosing(int slot) {
  76.  
  77. ItemStack stack = getStackInSlot(slot);
  78. if(stack != null) {
  79. setInventorySlotContents(slot, null);
  80.  
  81. }
  82. return stack;
  83. }
  84.  
  85. @Override
  86. public void setInventorySlotContents(int slot, ItemStack stack) {
  87. // TODO Auto-generated method stub
  88. inv[slot] = stack;
  89. if(stack != null && stack.stackSize > getInventoryStackLimit()){
  90. stack.stackSize = getInventoryStackLimit();
  91. }
  92. }
  93.  
  94. @Override
  95. public int getInventoryStackLimit() {
  96. // TODO Auto-generated method stub
  97. return 64;
  98. }
  99.  
  100. @Override
  101. public boolean isUseableByPlayer(EntityPlayer player) {
  102. return worldObj.getTileEntity(getPos()) == this &&
  103. player.getDistanceSq(getPos().getX() + 0.5, getPos().getY() + 0.5, getPos().getZ() + 0.5) < 64;
  104. }
  105.  
  106. @Override
  107. public void openInventory(EntityPlayer player) {
  108. // TODO Auto-generated method stub
  109.  
  110. }
  111.  
  112. @Override
  113. public void closeInventory(EntityPlayer player) {
  114. // TODO Auto-generated method stub
  115.  
  116. }
  117.  
  118. @Override
  119. public boolean isItemValidForSlot(int index, ItemStack itemstack) {
  120.  
  121. return !(itemstack.getItem() instanceof ItemCoal); // false is valid, true is invalid
  122. }
  123.  
  124. @Override
  125. public int getField(int id) {
  126. // TODO Auto-generated method stub
  127. return 0;
  128. }
  129.  
  130. @Override
  131. public void setField(int id, int value) {
  132. // TODO Auto-generated method stub
  133.  
  134. }
  135.  
  136. @Override
  137. public int getFieldCount() {
  138. // TODO Auto-generated method stub
  139. return 0;
  140. }
  141.  
  142. @Override
  143. public void clear() {
  144. for (int i = 0; i < inv.length; ++i) { inv[i] = null; }
  145.  
  146. }
  147. @Override
  148. public void readFromNBT(NBTTagCompound tagCompound){
  149. super.readFromNBT(tagCompound);
  150. NBTTagList tagList = tagCompound.getTagList("Inventory", tagCompound.getId());
  151. for(int i = 0; i < tagList.tagCount(); i++){
  152. NBTTagCompound tag = tagList.getCompoundTagAt(i);
  153. byte slot = tag.getByte("Slot");
  154. if(slot >= 0 && slot < inv.length){
  155. inv[slot] = ItemStack.loadItemStackFromNBT(tag);
  156. }
  157. }
  158. this.force_lasers_ions = tagCompound.getInteger("IonCount");
  159. }
  160.  
  161. @Override
  162. public void writeToNBT(NBTTagCompound tagCompound){
  163. super.writeToNBT(tagCompound);
  164.  
  165. NBTTagList itemList = new NBTTagList();
  166. for(int i = 0; i < inv.length; i++){
  167. ItemStack stack = inv[i];
  168. if(stack != null){
  169. NBTTagCompound tag = new NBTTagCompound();
  170. tag.setByte("Slot", (byte) i);
  171. stack.writeToNBT(tag);
  172. itemList.appendTag(tag);
  173. }
  174.  
  175. }
  176. tagCompound.setTag("Inventory", itemList);
  177.  
  178. tagCompound.setInteger("IonCount", force_lasers_ions);
  179. }
  180. public ion_Creater_Tile_Entity() {
  181. inv = new ItemStack[1];
  182.  
  183. }
  184.  
  185.  
  186. @Override
  187. public void update() {
  188. // Generate ions whenever loaded
  189. if (force_lasers_ions<100)
  190. {
  191. if (coal_left!=0) {
  192.  
  193. if (getStackInSlot(0)!=null) {
  194. decrStackSize(0, 1);
  195. coal_left=20;
  196. }
  197. force_lasers_ions+=1;
  198. }
  199.  
  200. }
  201. if (do_detect_tanks== true) {
  202. if(worldObj.getTileEntity(getPos().down()) != null) {
  203. if(worldObj.getTileEntity(this.getPos().down()) instanceof ion_Tank_Tile_Entity) {
  204. tank1=((ion_Tank_Tile_Entity)worldObj.getTileEntity(this.getPos().down()));
  205. // MainFile.logger.info(worldObj.getTileEntity(this.getPos().down()).getBlockType().getUnlocalizedName());
  206. }
  207. else {
  208. // MainFile.logger.info(worldObj.getTileEntity(this.getPos().down()).getBlockType().getUnlocalizedName());
  209. }
  210. }
  211. do_detect_tanks=false;
  212. }
  213. if (tank1 != null) {
  214. tank1.pushIons(1);
  215. }
  216. }
  217. public int getIons() {
  218. return force_lasers_ions;
  219. }
  220. public void setIons(int ions) {
  221. force_lasers_ions=ions;
  222. }
  223. }
Advertisement
Add Comment
Please, Sign In to add comment