Advertisement
LMH01

MFFS - Calclavia - 1.7.10 - ItemModeCustom.class

Aug 16th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 33.35 KB | None | 0 0
  1. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  2. // Jad home page: http://www.kpdus.com/jad.html
  3. // Decompiler options: packimports(3)
  4. // Source File Name:   ItemModeCustom.scala
  5.  
  6. package mffs.field.mode;
  7.  
  8. import java.io.File;
  9. import java.util.List;
  10. import java.util.Random;
  11. import mffs.Content$;
  12. import mffs.Settings$;
  13. import mffs.field.module.ItemModuleArray;
  14. import mffs.util.TCache;
  15. import net.minecraft.block.Block;
  16. import net.minecraft.client.gui.GuiScreen;
  17. import net.minecraft.entity.player.EntityPlayer;
  18. import net.minecraft.item.ItemStack;
  19. import net.minecraft.nbt.NBTBase;
  20. import net.minecraft.nbt.NBTTagCompound;
  21. import net.minecraft.nbt.NBTTagList;
  22. import net.minecraft.server.MinecraftServer;
  23. import net.minecraft.tileentity.TileEntity;
  24. import net.minecraft.util.ChatComponentText;
  25. import net.minecraft.util.RegistryNamespaced;
  26. import net.minecraft.world.World;
  27. import net.minecraftforge.common.util.ForgeDirection;
  28. import resonant.api.mffs.machine.IFieldMatrix;
  29. import resonant.api.mffs.machine.IProjector;
  30. import resonant.content.prefab.itemblock.ItemTooltip;
  31. import resonant.lib.utility.LanguageUtility;
  32. import resonant.lib.utility.nbt.NBTUtility;
  33. import resonant.lib.wrapper.WrapList;
  34. import resonant.lib.wrapper.WrapList$;
  35. import scala.Option;
  36. import scala.Predef$;
  37. import scala.Serializable;
  38. import scala.Tuple2;
  39. import scala.collection.IterableLike;
  40. import scala.collection.JavaConversions$;
  41. import scala.collection.Set;
  42. import scala.collection.immutable.IndexedSeq$;
  43. import scala.collection.immutable.Range;
  44. import scala.collection.mutable.ArrayOps;
  45. import scala.collection.mutable.HashMap;
  46. import scala.collection.mutable.Map;
  47. import scala.collection.mutable.Map$;
  48. import scala.collection.mutable.StringBuilder;
  49. import scala.runtime.AbstractFunction1;
  50. import scala.runtime.BoxedUnit;
  51. import scala.runtime.BoxesRunTime;
  52. import scala.runtime.IntRef;
  53. import scala.runtime.ObjectRef;
  54. import scala.runtime.RichInt$;
  55. import universalelectricity.core.transform.vector.Vector3;
  56.  
  57. // Referenced classes of package mffs.field.mode:
  58. //            ItemMode
  59.  
  60. public class ItemModeCustom extends ItemMode
  61.     implements TCache
  62. {
  63.  
  64.     public HashMap mffs$util$TCache$$cache()
  65.     {
  66.         return mffs$util$TCache$$cache;
  67.     }
  68.  
  69.     public void mffs$util$TCache$_setter_$mffs$util$TCache$$cache_$eq(HashMap x$1)
  70.     {
  71.         mffs$util$TCache$$cache = x$1;
  72.     }
  73.  
  74.     public void cache(String id, Object value)
  75.     {
  76.         mffs.util.TCache.class.cache(this, id, value);
  77.     }
  78.  
  79.     public Object getCache(String cacheID)
  80.     {
  81.         return mffs.util.TCache.class.getCache(this, cacheID);
  82.     }
  83.  
  84.     public Object getCache(Class clazz, String cacheID)
  85.     {
  86.         return mffs.util.TCache.class.getCache(this, clazz, cacheID);
  87.     }
  88.  
  89.     public boolean hasCache(Class clazz, String cacheID)
  90.     {
  91.         return mffs.util.TCache.class.hasCache(this, clazz, cacheID);
  92.     }
  93.  
  94.     public void clearCache(String cacheID)
  95.     {
  96.         mffs.util.TCache.class.clearCache(this, cacheID);
  97.     }
  98.  
  99.     public void clearCache()
  100.     {
  101.         mffs.util.TCache.class.clearCache(this);
  102.     }
  103.  
  104.     private final String NBT_ID()
  105.     {
  106.         return NBT_ID;
  107.     }
  108.  
  109.     public final String mffs$field$mode$ItemModeCustom$$NBT_MODE()
  110.     {
  111.         return mffs$field$mode$ItemModeCustom$$NBT_MODE;
  112.     }
  113.  
  114.     private final String NBT_POINT_1()
  115.     {
  116.         return NBT_POINT_1;
  117.     }
  118.  
  119.     private final String NBT_POINT_2()
  120.     {
  121.         return NBT_POINT_2;
  122.     }
  123.  
  124.     private final String NBT_FIELD_BLOCK_LIST()
  125.     {
  126.         return NBT_FIELD_BLOCK_LIST;
  127.     }
  128.  
  129.     public final String mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_NAME()
  130.     {
  131.         return mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_NAME;
  132.     }
  133.  
  134.     public final String mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_METADATA()
  135.     {
  136.         return mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_METADATA;
  137.     }
  138.  
  139.     private final String NBT_FIELD_SIZE()
  140.     {
  141.         return NBT_FIELD_SIZE;
  142.     }
  143.  
  144.     private final String NBT_FILE_SAVE_PREFIX()
  145.     {
  146.         return NBT_FILE_SAVE_PREFIX;
  147.     }
  148.  
  149.     public ItemMode[] modes()
  150.     {
  151.         return modes;
  152.     }
  153.  
  154.     public void func_77624_a(ItemStack itemStack, EntityPlayer par2EntityPlayer, List list, boolean par4)
  155.     {
  156.         NBTTagCompound nbt;
  157.         int modeID;
  158.         nbt = NBTUtility.getNBTTagCompound(itemStack);
  159.         WrapList$.MODULE$.ListWithGenericAdd(list).add((new StringBuilder()).append(LanguageUtility.getLocal("info.modeCustom.mode")).append(" ").append(nbt.func_74767_n(mffs$field$mode$ItemModeCustom$$NBT_MODE()) ? ((Object) (LanguageUtility.getLocal("info.modeCustom.substraction"))) : ((Object) (LanguageUtility.getLocal("info.modeCustom.additive")))).toString());
  160.         Vector3 point1 = new Vector3(nbt.func_74775_l(NBT_POINT_1()));
  161.         WrapList$.MODULE$.ListWithGenericAdd(list).add((new StringBuilder()).append(LanguageUtility.getLocal("info.modeCustom.point1")).append(" ").append(BoxesRunTime.boxToInteger(point1.xi())).append(", ").append(BoxesRunTime.boxToInteger(point1.yi())).append(", ").append(BoxesRunTime.boxToInteger(point1.zi())).toString());
  162.         Vector3 point2 = new Vector3(nbt.func_74775_l(NBT_POINT_2()));
  163.         WrapList$.MODULE$.ListWithGenericAdd(list).add((new StringBuilder()).append(LanguageUtility.getLocal("info.modeCustom.point2")).append(" ").append(BoxesRunTime.boxToInteger(point2.xi())).append(", ").append(BoxesRunTime.boxToInteger(point2.yi())).append(", ").append(BoxesRunTime.boxToInteger(point2.zi())).toString());
  164.         modeID = nbt.func_74762_e(NBT_ID());
  165.         if(modeID <= 0) goto _L2; else goto _L1
  166. _L1:
  167.         int fieldSize;
  168.         WrapList$.MODULE$.ListWithGenericAdd(list).add((new StringBuilder()).append(LanguageUtility.getLocal("info.modeCustom.modeID")).append(" ").append(BoxesRunTime.boxToInteger(modeID)).toString());
  169.         fieldSize = nbt.func_74762_e(NBT_FIELD_SIZE());
  170.         BoxesRunTime.boxToBoolean(fieldSize <= 0 ? WrapList$.MODULE$.ListWithGenericAdd(list).add(LanguageUtility.getLocal("info.modeCustom.notSaved")) : WrapList$.MODULE$.ListWithGenericAdd(list).add((new StringBuilder()).append(LanguageUtility.getLocal("info.modeCustom.fieldSize")).append(" ").append(BoxesRunTime.boxToInteger(fieldSize)).toString()));
  171.           goto _L3
  172. _L2:
  173.         BoxedUnit.UNIT;
  174. _L3:
  175.         JVM INSTR pop ;
  176.         if(GuiScreen.func_146272_n())
  177.             super.func_77624_a(itemStack, par2EntityPlayer, list, par4);
  178.         else
  179.             WrapList$.MODULE$.ListWithGenericAdd(list).add(LanguageUtility.getLocal("info.modeCustom.shift"));
  180.         return;
  181.     }
  182.  
  183.     public ItemStack func_77659_a(ItemStack itemStack, World world, EntityPlayer entityPlayer)
  184.     {
  185.         NBTTagCompound nbt;
  186.         Vector3 point1;
  187.         Vector3 point2;
  188.         if(world.field_72995_K)
  189.             break MISSING_BLOCK_LABEL_541;
  190.         if(!entityPlayer.func_70093_af())
  191.             break MISSING_BLOCK_LABEL_456;
  192.         nbt = NBTUtility.getNBTTagCompound(itemStack);
  193.         if(nbt == null)
  194.             break MISSING_BLOCK_LABEL_541;
  195.         point1 = new Vector3(nbt.func_74775_l(NBT_POINT_1()));
  196.         point2 = new Vector3(nbt.func_74775_l(NBT_POINT_2()));
  197.         if(!nbt.func_74764_b(NBT_POINT_1()) || !nbt.func_74764_b(NBT_POINT_2()))
  198.             break MISSING_BLOCK_LABEL_541;
  199.         point1;
  200.         Vector3 vector3;
  201.         vector3 = point2;
  202.         if(point1 != null)
  203.             break MISSING_BLOCK_LABEL_104;
  204.         JVM INSTR pop ;
  205.         if(vector3 == null)
  206.             break MISSING_BLOCK_LABEL_541;
  207.         break MISSING_BLOCK_LABEL_112;
  208.         vector3;
  209.         equals();
  210.         JVM INSTR ifne 541;
  211.            goto _L1 _L2
  212. _L1:
  213.         break MISSING_BLOCK_LABEL_112;
  214. _L2:
  215.         break MISSING_BLOCK_LABEL_541;
  216.         if(point1.distance(point2) < (double)Settings$.MODULE$.maxForceFieldScale())
  217.         {
  218.             nbt.func_82580_o(NBT_POINT_1());
  219.             nbt.func_82580_o(NBT_POINT_2());
  220.             ObjectRef midPoint = ObjectRef.create(((Vector3)point1.midpoint(point2)).floor());
  221.             point1.$minus$eq((Vector3)midPoint.elem);
  222.             point2.$minus$eq((Vector3)midPoint.elem);
  223.             Vector3 minPoint = point1.min(point2);
  224.             Vector3 maxPoint = point1.max(point2);
  225.             NBTTagCompound saveNBT = NBTUtility.loadData(getSaveDirectory(), (new StringBuilder()).append(NBT_FILE_SAVE_PREFIX()).append(BoxesRunTime.boxToInteger(getModeID(itemStack))).toString());
  226.             if(saveNBT == null)
  227.                 saveNBT = new NBTTagCompound();
  228.             ObjectRef list = ObjectRef.create(null);
  229.             if(saveNBT.func_74764_b(NBT_FIELD_BLOCK_LIST()))
  230.                 list.elem = (NBTTagList)saveNBT.func_74781_a(NBT_FIELD_BLOCK_LIST());
  231.             else
  232.                 list.elem = new NBTTagList();
  233.             RichInt$.MODULE$.to$extension0(Predef$.MODULE$.intWrapper(minPoint.xi()), maxPoint.xi()).foreach$mVc$sp(new Serializable(world, nbt, midPoint, minPoint, maxPoint, list) {
  234.  
  235.                 public final void apply(int x)
  236.                 {
  237.                     apply$mcVI$sp(x);
  238.                 }
  239.  
  240.                 public void apply$mcVI$sp(int x)
  241.                 {
  242.                     RichInt$.MODULE$.to$extension0(Predef$.MODULE$.intWrapper(minPoint$1.yi()), maxPoint$1.yi()).foreach$mVc$sp(new Serializable(x) {
  243.  
  244.                         public final void apply(int y)
  245.                         {
  246.                             apply$mcVI$sp(y);
  247.                         }
  248.  
  249.                         public void apply$mcVI$sp(int y)
  250.                         {
  251.                             RichInt$.MODULE$.to$extension0(Predef$.MODULE$.intWrapper($outer._fld1.zi()), $outer._fld1.zi()).foreach$mVc$sp(new Serializable(y) {
  252.  
  253.                                 public final void apply(int z)
  254.                                 {
  255.                                     apply$mcVI$sp(z);
  256.                                 }
  257.  
  258.                                 public void apply$mcVI$sp(int z)
  259.                                 {
  260.                                     Vector3 position = new Vector3($outer._fld2, y$1, z);
  261.                                     Vector3 targetCheck = ((Vector3)$outer.outer()._fld1.elem).$plus(position);
  262.                                     Block block = targetCheck.getBlock($outer.outer()._fld1);
  263.                                     if(!block.isAir($outer.outer()._fld1, targetCheck.xi(), targetCheck.yi(), targetCheck.zi()))
  264.                                         if($outer.outer()._fld1.func_74767_n($outer.outer().outer().mffs$field$mode$ItemModeCustom$$NBT_MODE()))
  265.                                         {
  266.                                             ((IterableLike)RichInt$.MODULE$.until$extension0(Predef$.MODULE$.intWrapper(0), ((NBTTagList)$outer.outer()._fld1.elem).func_74745_c()).filter(new Serializable(position) {
  267.  
  268.                                                 public final boolean apply(int i)
  269.                                                 {
  270.                                                     return apply$mcZI$sp(i);
  271.                                                 }
  272.  
  273.                                                 public boolean apply$mcZI$sp(int i)
  274.                                                 {
  275.                                                     return (new Vector3(((NBTTagList)$outer.outer().outer()._fld1.elem).func_150305_b(i))).equals(position$1);
  276.                                                 }
  277.  
  278.                                                 public final volatile Object apply(Object v1)
  279.                                                 {
  280.                                                     return BoxesRunTime.boxToBoolean(apply(BoxesRunTime.unboxToInt(v1)));
  281.                                                 }
  282.  
  283.                                                 private final .anonfun.apply.mcVI.sp._cls2 $outer;
  284.                                                 private final Vector3 position$1;
  285.  
  286.                             public
  287.                             {
  288.                                 if(.anonfun.apply.mcVI.sp._cls2.this == null)
  289.                                 {
  290.                                     throw null;
  291.                                 } else
  292.                                 {
  293.                                     this.$outer = .anonfun.apply.mcVI.sp._cls2.this;
  294.                                     this.position$1 = position$1;
  295.                                     super();
  296.                                     return;
  297.                                 }
  298.                             }
  299.                                             }
  300. )).foreach(new Serializable() {
  301.  
  302.                                                 public final NBTBase apply(int x$1)
  303.                                                 {
  304.                                                     return ((NBTTagList)$outer.outer().outer()._fld1.elem).func_74744_a(x$1);
  305.                                                 }
  306.  
  307.                                                 public final volatile Object apply(Object v1)
  308.                                                 {
  309.                                                     return apply(BoxesRunTime.unboxToInt(v1));
  310.                                                 }
  311.  
  312.                                                 private final .anonfun.apply.mcVI.sp._cls2 $outer;
  313.  
  314.                             public
  315.                             {
  316.                                 if(.anonfun.apply.mcVI.sp._cls2.this == null)
  317.                                 {
  318.                                     throw null;
  319.                                 } else
  320.                                 {
  321.                                     this.$outer = .anonfun.apply.mcVI.sp._cls2.this;
  322.                                     super();
  323.                                     return;
  324.                                 }
  325.                             }
  326.                                             }
  327. );
  328.                                         } else
  329.                                         {
  330.                                             NBTTagCompound vectorTag = position.toNBT();
  331.                                             vectorTag.func_74778_a($outer.outer().outer().mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_NAME(), Block.field_149771_c.func_148750_c(block));
  332.                                             vectorTag.func_74768_a($outer.outer().outer().mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_METADATA(), targetCheck.getBlockMetadata($outer.outer()._fld1));
  333.                                             ((NBTTagList)$outer.outer()._fld1.elem).func_74742_a(vectorTag);
  334.                                         }
  335.                                 }
  336.  
  337.                                 public .anonfun.apply.mcVI.sp._cls1 mffs$field$mode$ItemModeCustom$$anonfun$$anonfun$$anonfun$$$outer()
  338.                                 {
  339.                                     return $outer;
  340.                                 }
  341.  
  342.                                 public final volatile Object apply(Object v1)
  343.                                 {
  344.                                     apply(BoxesRunTime.unboxToInt(v1));
  345.                                     return BoxedUnit.UNIT;
  346.                                 }
  347.  
  348.                                 private final .anonfun.apply.mcVI.sp._cls1 $outer;
  349.                                 private final int y$1;
  350.  
  351.                         public
  352.                         {
  353.                             if(.anonfun.apply.mcVI.sp._cls1.this == null)
  354.                             {
  355.                                 throw null;
  356.                             } else
  357.                             {
  358.                                 this.$outer = .anonfun.apply.mcVI.sp._cls1.this;
  359.                                 this.y$1 = y$1;
  360.                                 super();
  361.                                 return;
  362.                             }
  363.                         }
  364.                             }
  365. );
  366.                         }
  367.  
  368.                         public .anonfun.onItemRightClick._cls1 mffs$field$mode$ItemModeCustom$$anonfun$$anonfun$$$outer()
  369.                         {
  370.                             return $outer;
  371.                         }
  372.  
  373.                         public final volatile Object apply(Object v1)
  374.                         {
  375.                             apply(BoxesRunTime.unboxToInt(v1));
  376.                             return BoxedUnit.UNIT;
  377.                         }
  378.  
  379.                         private final .anonfun.onItemRightClick._cls1 $outer;
  380.                         public final int x$2;
  381.  
  382.                     public
  383.                     {
  384.                         if(.anonfun.onItemRightClick._cls1.this == null)
  385.                         {
  386.                             throw null;
  387.                         } else
  388.                         {
  389.                             this.$outer = .anonfun.onItemRightClick._cls1.this;
  390.                             this.x$2 = x$2;
  391.                             super();
  392.                             return;
  393.                         }
  394.                     }
  395.                     }
  396. );
  397.                 }
  398.  
  399.                 public ItemModeCustom mffs$field$mode$ItemModeCustom$$anonfun$$$outer()
  400.                 {
  401.                     return $outer;
  402.                 }
  403.  
  404.                 public final volatile Object apply(Object v1)
  405.                 {
  406.                     apply(BoxesRunTime.unboxToInt(v1));
  407.                     return BoxedUnit.UNIT;
  408.                 }
  409.  
  410.                 private final ItemModeCustom $outer;
  411.                 public final World world$1;
  412.                 public final NBTTagCompound nbt$1;
  413.                 public final ObjectRef midPoint$1;
  414.                 public final Vector3 minPoint$1;
  415.                 public final Vector3 maxPoint$1;
  416.                 public final ObjectRef list$1;
  417.  
  418.             public
  419.             {
  420.                 if(ItemModeCustom.this == null)
  421.                 {
  422.                     throw null;
  423.                 } else
  424.                 {
  425.                     this.$outer = ItemModeCustom.this;
  426.                     this.world$1 = world$1;
  427.                     this.nbt$1 = nbt$1;
  428.                     this.midPoint$1 = midPoint$1;
  429.                     this.minPoint$1 = minPoint$1;
  430.                     this.maxPoint$1 = maxPoint$1;
  431.                     this.list$1 = list$1;
  432.                     super();
  433.                     return;
  434.                 }
  435.             }
  436.             }
  437. );
  438.             saveNBT.func_74782_a(NBT_FIELD_BLOCK_LIST(), (NBTTagList)list.elem);
  439.             nbt.func_74768_a(NBT_FIELD_SIZE(), ((NBTTagList)list.elem).func_74745_c());
  440.             NBTUtility.saveData(getSaveDirectory(), (new StringBuilder()).append(NBT_FILE_SAVE_PREFIX()).append(BoxesRunTime.boxToInteger(getModeID(itemStack))).toString(), saveNBT);
  441.             clearCache();
  442.             entityPlayer.func_145747_a(new ChatComponentText(LanguageUtility.getLocal("message.modeCustom.saved")));
  443.         }
  444.         break MISSING_BLOCK_LABEL_541;
  445.         NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
  446.         if(nbt != null)
  447.         {
  448.             nbt.func_74757_a(mffs$field$mode$ItemModeCustom$$NBT_MODE(), !nbt.func_74767_n(mffs$field$mode$ItemModeCustom$$NBT_MODE()));
  449.             entityPlayer.func_145747_a(new ChatComponentText(LanguageUtility.getLocal("message.modeCustom.modeChange").replaceAll("#p", nbt.func_74767_n(mffs$field$mode$ItemModeCustom$$NBT_MODE()) ? LanguageUtility.getLocal("info.modeCustom.substraction") : LanguageUtility.getLocal("info.modeCustom.additive"))));
  450.         }
  451.         return itemStack;
  452.     }
  453.  
  454.     public boolean func_77648_a(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int par7,
  455.             float par8, float par9, float par10)
  456.     {
  457.         NBTTagCompound nbt;
  458.         Vector3 point1;
  459.         if(world.field_72995_K)
  460.             break MISSING_BLOCK_LABEL_276;
  461.         nbt = NBTUtility.getNBTTagCompound(itemStack);
  462.         if(nbt == null)
  463.             break MISSING_BLOCK_LABEL_276;
  464.         point1 = new Vector3(nbt.func_74775_l(NBT_POINT_1()));
  465.         if(!nbt.func_74764_b(NBT_POINT_1()))
  466.             break MISSING_BLOCK_LABEL_181;
  467.         point1;
  468.         Vector3 vector3;
  469.         vector3 = new Vector3(0.0D, 0.0D, 0.0D);
  470.         if(point1 != null)
  471.             break MISSING_BLOCK_LABEL_75;
  472.         JVM INSTR pop ;
  473.         if(vector3 == null)
  474.             break MISSING_BLOCK_LABEL_181;
  475.         break MISSING_BLOCK_LABEL_83;
  476.         vector3;
  477.         equals();
  478.         JVM INSTR ifne 181;
  479.            goto _L1 _L2
  480. _L1:
  481.         break MISSING_BLOCK_LABEL_83;
  482. _L2:
  483.         break MISSING_BLOCK_LABEL_181;
  484.         nbt.func_74782_a(NBT_POINT_2(), (new Vector3(x, y, z)).toNBT());
  485.         player.func_145747_a(new ChatComponentText((new StringBuilder()).append("Set point 2: ").append(BoxesRunTime.boxToInteger(x)).append(", ").append(BoxesRunTime.boxToInteger(y)).append(", ").append(BoxesRunTime.boxToInteger(z)).append(".").toString()));
  486.         break MISSING_BLOCK_LABEL_276;
  487.         nbt.func_74782_a(NBT_POINT_1(), (new Vector3(x, y, z)).toNBT());
  488.         player.func_145747_a(new ChatComponentText((new StringBuilder()).append("Set point 1: ").append(BoxesRunTime.boxToInteger(x)).append(", ").append(BoxesRunTime.boxToInteger(y)).append(", ").append(BoxesRunTime.boxToInteger(z)).append(".").toString()));
  489.         return true;
  490.     }
  491.  
  492.     public int getModeID(ItemStack itemStack)
  493.     {
  494.         NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
  495.         int id = nbt.func_74762_e(NBT_ID());
  496.         if(id <= 0)
  497.         {
  498.             nbt.func_74768_a(NBT_ID(), getNextAvaliableID());
  499.             id = nbt.func_74762_e(NBT_ID());
  500.         }
  501.         return id;
  502.     }
  503.  
  504.     public int getNextAvaliableID()
  505.     {
  506.         IntRef i = IntRef.create(1);
  507.         Predef$.MODULE$.refArrayOps((Object[])getSaveDirectory().listFiles()).foreach(new Serializable(i) {
  508.  
  509.             public final void apply(File fileEntry)
  510.             {
  511.                 i$1.elem = i$1.elem + 1;
  512.             }
  513.  
  514.             public final volatile Object apply(Object v1)
  515.             {
  516.                 apply((File)v1);
  517.                 return BoxedUnit.UNIT;
  518.             }
  519.  
  520.             private final IntRef i$1;
  521.  
  522.             public
  523.             {
  524.                 this.i$1 = i$1;
  525.                 super();
  526.             }
  527.         }
  528. );
  529.         return i.elem;
  530.     }
  531.  
  532.     public File getSaveDirectory()
  533.     {
  534.         File saveDirectory = NBTUtility.getSaveDirectory(MinecraftServer.func_71276_C().func_71270_I());
  535.         Object _tmp = saveDirectory.exists() ? BoxedUnit.UNIT : BoxesRunTime.boxToBoolean(saveDirectory.mkdir());
  536.         File file = new File(saveDirectory, "mffs");
  537.         Object _tmp1 = file.exists() ? BoxedUnit.UNIT : BoxesRunTime.boxToBoolean(file.mkdir());
  538.         return file;
  539.     }
  540.  
  541.     public scala.collection.immutable.Set getFieldBlocks(IFieldMatrix projector, ItemStack itemStack)
  542.     {
  543.         return getFieldBlockMapClean(projector, itemStack).keySet().toSet();
  544.     }
  545.  
  546.     public Map getFieldBlockMap(IFieldMatrix projector, ItemStack itemStack)
  547.     {
  548.         String cacheID = (new StringBuilder()).append("itemStack_").append(BoxesRunTime.boxToInteger(itemStack.hashCode())).toString();
  549.         if(hasCache(scala/collection/mutable/Map, cacheID))
  550.             return (Map)getCache(scala/collection/mutable/Map, cacheID);
  551.         Map fieldMap = getFieldBlockMapClean(projector, itemStack);
  552.         if(projector.getModuleCount(Content$.MODULE$.moduleArray(), new int[0]) > 0)
  553.         {
  554.             Map longestDirectional = ((ItemModuleArray)Content$.MODULE$.moduleArray()).getDirectionWidthMap(JavaConversions$.MODULE$.setAsJavaSet(fieldMap.keySet()));
  555.             Predef$.MODULE$.refArrayOps((Object[])ForgeDirection.VALID_DIRECTIONS).foreach(new Serializable(projector, itemStack, fieldMap, longestDirectional) {
  556.  
  557.                 public final void apply(ForgeDirection direction)
  558.                 {
  559.                     int copyAmount = projector$1.getSidedModuleCount(Content$.MODULE$.moduleArray(), new ForgeDirection[] {
  560.                         direction
  561.                     });
  562.                     int directionalDisplacement = Math.abs(Predef$.MODULE$.Integer2int((Integer)longestDirectional$1.apply(direction))) + Math.abs(Predef$.MODULE$.Integer2int((Integer)longestDirectional$1.apply(direction.getOpposite()))) + 1;
  563.                     RichInt$.MODULE$.until$extension0(Predef$.MODULE$.intWrapper(0), copyAmount).foreach$mVc$sp(new Serializable(directionalDisplacement, direction) {
  564.  
  565.                         public final void apply(int i)
  566.                         {
  567.                             apply$mcVI$sp(i);
  568.                         }
  569.  
  570.                         public void apply$mcVI$sp(int i)
  571.                         {
  572.                             int directionalDisplacementScale = directionalDisplacement$1 * (i + 1);
  573.                             $outer.outer().getFieldBlocks($outer._fld1, $outer._fld1).foreach(new Serializable(directionalDisplacementScale) {
  574.  
  575.                                 public final Option apply(Vector3 originalVec)
  576.                                 {
  577.                                     Vector3 newFieldBlock = originalVec.clone().$plus((new Vector3($outer._fld1)).$times(directionalDisplacementScale$1));
  578.                                     return $outer.outer()._fld1.put(newFieldBlock, $outer.outer()._fld1.apply(originalVec));
  579.                                 }
  580.  
  581.                                 public final volatile Object apply(Object v1)
  582.                                 {
  583.                                     return apply((Vector3)v1);
  584.                                 }
  585.  
  586.                                 private final .anonfun.apply._cls1 $outer;
  587.                                 private final int directionalDisplacementScale$1;
  588.  
  589.                         public
  590.                         {
  591.                             if(.anonfun.apply._cls1.this == null)
  592.                             {
  593.                                 throw null;
  594.                             } else
  595.                             {
  596.                                 this.$outer = .anonfun.apply._cls1.this;
  597.                                 this.directionalDisplacementScale$1 = directionalDisplacementScale$1;
  598.                                 super();
  599.                                 return;
  600.                             }
  601.                         }
  602.                             }
  603. );
  604.                         }
  605.  
  606.                         public .anonfun.getFieldBlockMap._cls1 mffs$field$mode$ItemModeCustom$$anonfun$$anonfun$$$outer()
  607.                         {
  608.                             return $outer;
  609.                         }
  610.  
  611.                         public final volatile Object apply(Object v1)
  612.                         {
  613.                             apply(BoxesRunTime.unboxToInt(v1));
  614.                             return BoxedUnit.UNIT;
  615.                         }
  616.  
  617.                         private final .anonfun.getFieldBlockMap._cls1 $outer;
  618.                         private final int directionalDisplacement$1;
  619.                         public final ForgeDirection direction$1;
  620.  
  621.                     public
  622.                     {
  623.                         if(.anonfun.getFieldBlockMap._cls1.this == null)
  624.                         {
  625.                             throw null;
  626.                         } else
  627.                         {
  628.                             this.$outer = .anonfun.getFieldBlockMap._cls1.this;
  629.                             this.directionalDisplacement$1 = directionalDisplacement$1;
  630.                             this.direction$1 = direction$1;
  631.                             super();
  632.                             return;
  633.                         }
  634.                     }
  635.                     }
  636. );
  637.                 }
  638.  
  639.                 public ItemModeCustom mffs$field$mode$ItemModeCustom$$anonfun$$$outer()
  640.                 {
  641.                     return $outer;
  642.                 }
  643.  
  644.                 public final volatile Object apply(Object v1)
  645.                 {
  646.                     apply((ForgeDirection)v1);
  647.                     return BoxedUnit.UNIT;
  648.                 }
  649.  
  650.                 private final ItemModeCustom $outer;
  651.                 public final IFieldMatrix projector$1;
  652.                 public final ItemStack itemStack$1;
  653.                 public final Map fieldMap$1;
  654.                 private final Map longestDirectional$1;
  655.  
  656.             public
  657.             {
  658.                 if(ItemModeCustom.this == null)
  659.                 {
  660.                     throw null;
  661.                 } else
  662.                 {
  663.                     this.$outer = ItemModeCustom.this;
  664.                     this.projector$1 = projector$1;
  665.                     this.itemStack$1 = itemStack$1;
  666.                     this.fieldMap$1 = fieldMap$1;
  667.                     this.longestDirectional$1 = longestDirectional$1;
  668.                     super();
  669.                     return;
  670.                 }
  671.             }
  672.             }
  673. );
  674.         }
  675.         cache(cacheID, fieldMap);
  676.         return fieldMap;
  677.     }
  678.  
  679.     public Map getFieldBlockMapClean(IFieldMatrix projector, ItemStack itemStack)
  680.     {
  681.         float scale = (float)projector.getModuleCount(Content$.MODULE$.moduleScale(), new int[0]) / 3F + (float)1;
  682.         Map fieldBlocks = Map$.MODULE$.empty();
  683.         if(getSaveDirectory() != null)
  684.         {
  685.             NBTTagCompound nbt = NBTUtility.loadData(getSaveDirectory(), (new StringBuilder()).append(NBT_FILE_SAVE_PREFIX()).append(BoxesRunTime.boxToInteger(getModeID(itemStack))).toString());
  686.             if(nbt != null)
  687.             {
  688.                 NBTTagList nbtTagList = nbt.func_150295_c(NBT_FIELD_BLOCK_LIST(), 10);
  689.                 ((IterableLike)RichInt$.MODULE$.until$extension0(Predef$.MODULE$.intWrapper(0), nbtTagList.func_74745_c()).map(new Serializable(nbtTagList) {
  690.  
  691.                     public final NBTTagCompound apply(int i)
  692.                     {
  693.                         return nbtTagList$1.func_150305_b(i);
  694.                     }
  695.  
  696.                     public final volatile Object apply(Object v1)
  697.                     {
  698.                         return apply(BoxesRunTime.unboxToInt(v1));
  699.                     }
  700.  
  701.                     private final NBTTagList nbtTagList$1;
  702.  
  703.             public
  704.             {
  705.                 this.nbtTagList$1 = nbtTagList$1;
  706.                 super();
  707.             }
  708.                 }
  709. , IndexedSeq$.MODULE$.canBuildFrom())).foreach(new Serializable(scale, fieldBlocks) {
  710.  
  711.                     public final Option apply(NBTTagCompound vectorTag)
  712.                     {
  713.                         return fieldBlocks$1.put((new Vector3(vectorTag)).$times(scale$1), new Tuple2((Block)Block.field_149771_c.func_82594_a(vectorTag.func_74779_i($outer.mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_NAME())), BoxesRunTime.boxToInteger(vectorTag.func_74762_e($outer.mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_METADATA()))));
  714.                     }
  715.  
  716.                     public final volatile Object apply(Object v1)
  717.                     {
  718.                         return apply((NBTTagCompound)v1);
  719.                     }
  720.  
  721.                     private final ItemModeCustom $outer;
  722.                     private final float scale$1;
  723.                     private final Map fieldBlocks$1;
  724.  
  725.             public
  726.             {
  727.                 if(ItemModeCustom.this == null)
  728.                 {
  729.                     throw null;
  730.                 } else
  731.                 {
  732.                     this.$outer = ItemModeCustom.this;
  733.                     this.scale$1 = scale$1;
  734.                     this.fieldBlocks$1 = fieldBlocks$1;
  735.                     super();
  736.                     return;
  737.                 }
  738.             }
  739.                 }
  740. );
  741.             }
  742.         }
  743.         return fieldBlocks;
  744.     }
  745.  
  746.     public java.util.Set getExteriorPoints(IFieldMatrix projector)
  747.     {
  748.         return JavaConversions$.MODULE$.setAsJavaSet(getFieldBlocks(projector, projector.getModeStack()));
  749.     }
  750.  
  751.     public java.util.Set getInteriorPoints(IFieldMatrix projector)
  752.     {
  753.         return getExteriorPoints(projector);
  754.     }
  755.  
  756.     public boolean isInField(IFieldMatrix projector, Vector3 position)
  757.     {
  758.         return false;
  759.     }
  760.  
  761.     public void render(IProjector projector, double x, double y, double z,
  762.             float f, long ticks)
  763.     {
  764.         modes()[((TileEntity)projector).func_145831_w().field_73012_v.nextInt(modes().length - 1)].render(projector, x, y, z, f, ticks);
  765.     }
  766.  
  767.     public float getFortronCost(float amplifier)
  768.     {
  769.         return super.getFortronCost(amplifier) * amplifier;
  770.     }
  771.  
  772.     public ItemModeCustom()
  773.     {
  774.         mffs.util.TCache.class.$init$(this);
  775.         modes = (ItemMode[])(Object[])(new ItemMode[] {
  776.             Content$.MODULE$.modeCube(), Content$.MODULE$.modeSphere(), Content$.MODULE$.modeTube(), Content$.MODULE$.modePyramid()
  777.         });
  778.     }
  779.  
  780.     private final String NBT_ID = "id";
  781.     private final String mffs$field$mode$ItemModeCustom$$NBT_MODE = "mode";
  782.     private final String NBT_POINT_1 = "point1";
  783.     private final String NBT_POINT_2 = "point2";
  784.     private final String NBT_FIELD_BLOCK_LIST = "fieldPoints";
  785.     private final String mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_NAME = "blockID";
  786.     private final String mffs$field$mode$ItemModeCustom$$NBT_FIELD_BLOCK_METADATA = "blockMetadata";
  787.     private final String NBT_FIELD_SIZE = "fieldSize";
  788.     private final String NBT_FILE_SAVE_PREFIX = "custom_mode_";
  789.     private final ItemMode modes[];
  790.     private final HashMap mffs$util$TCache$$cache;
  791. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement