tterrag1098

Untitled

Mar 21st, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 6.25 KB | None | 0 0
  1.     Local uncommitted changes, not checked in to index
  2.  
  3. ------- enderio-base/src/main/java/crazypants/enderio/base/EnderIO.java -------
  4. index 4b96b93af..eb197cdab 100644
  5. @@ -12,6 +12,7 @@ import com.google.common.collect.ImmutableList;
  6.  
  7.  import crazypants.enderio.api.IMC;
  8.  import crazypants.enderio.api.addon.IEnderIOAddon;
  9. +import crazypants.enderio.api.capacitor.CapabilityCapacitorData;
  10.  import crazypants.enderio.base.conduit.redstone.ConnectivityTool;
  11.  import crazypants.enderio.base.config.Config;
  12.  import crazypants.enderio.base.config.config.DiagnosticsConfig;
  13. @@ -96,6 +97,8 @@ public class EnderIO implements IEnderIOAddon {
  14.    @EventHandler
  15.    public void preInit(@Nonnull FMLPreInitializationEvent event) {
  16.      Log.debug("PHASE PRE-INIT START");
  17. +    
  18. +    CapabilityCapacitorData.register();
  19.  
  20.      MinecraftForge.EVENT_BUS.post(new EnderIOLifecycleEvent.Config.Pre());
  21.      Config.init(event);
  22.  
  23.  enderio-base/src/main/java/crazypants/enderio/base/capacitor/CapacitorHelper.java
  24. index e0ce36319..4e23e27d9 100644
  25. @@ -8,13 +8,14 @@ import javax.annotation.Nullable;
  26.  
  27.  import org.apache.commons.lang3.tuple.Pair;
  28.  
  29. +import crazypants.enderio.api.capacitor.CapabilityCapacitorData;
  30.  import crazypants.enderio.util.Prep;
  31.  import net.minecraft.item.ItemStack;
  32.  import net.minecraft.nbt.NBTTagCompound;
  33.  import net.minecraft.nbt.NBTTagFloat;
  34.  
  35.  public class CapacitorHelper {
  36. -
  37. +  
  38.    private CapacitorHelper() {
  39.    }
  40.  
  41. @@ -26,10 +27,7 @@ public class CapacitorHelper {
  42.      if (capData != null) {
  43.        return capData;
  44.      }
  45. -    if (stack.getItem() instanceof ICapacitorDataItem) {
  46. -      return ((ICapacitorDataItem) stack.getItem()).getCapacitorData(stack);
  47. -    }
  48. -    return null;
  49. +    return stack.getCapability(CapabilityCapacitorData.getCapNN(), null);
  50.    }
  51.  
  52.    public static boolean isValidUpgrade(@Nonnull ItemStack stack) {
  53. @@ -40,10 +38,7 @@ public class CapacitorHelper {
  54.      if (capData != null) {
  55.        return true;
  56.      }
  57. -    if (stack.getItem() instanceof ICapacitorDataItem) {
  58. -      return true;
  59. -    }
  60. -    return false;
  61. +    return stack.hasCapability(CapabilityCapacitorData.getCapNN(), null);
  62.    }
  63.  
  64.    protected static @Nullable ICapacitorData getNBTCapacitorDataFromItemStack(@Nonnull ItemStack stack) {
  65.  
  66.  enderio-base/src/main/java/crazypants/enderio/base/capacitor/ICapacitorDataItem.java
  67. deleted file mode 100644
  68. index f25bd6057..000000000
  69. @@ -1,12 +0,0 @@
  70. -package crazypants.enderio.base.capacitor;
  71. -
  72. -import javax.annotation.Nonnull;
  73. -
  74. -import net.minecraft.item.ItemStack;
  75. -
  76. -public interface ICapacitorDataItem {
  77. -
  78. -  @Nonnull
  79. -  ICapacitorData getCapacitorData(@Nonnull ItemStack stack);
  80. -
  81. -}
  82.  
  83.  enderio-base/src/main/java/crazypants/enderio/base/capacitor/ItemCapacitor.java
  84. index 6e0cc7b32..de729dcd9 100644
  85. @@ -6,10 +6,12 @@ import javax.annotation.Nonnull;
  86.  import javax.annotation.Nullable;
  87.  
  88.  import com.enderio.core.client.handlers.SpecialTooltipHandler;
  89. +import com.enderio.core.common.CompoundCapabilityProvider;
  90.  import com.enderio.core.common.util.NNList;
  91.  import com.enderio.core.common.util.NNList.Callback;
  92.  import com.enderio.core.common.util.NullHelper;
  93.  
  94. +import crazypants.enderio.api.capacitor.CapabilityCapacitorData;
  95.  import crazypants.enderio.base.EnderIO;
  96.  import crazypants.enderio.base.EnderIOTab;
  97.  import crazypants.enderio.base.init.IModObject;
  98. @@ -22,6 +24,7 @@ import net.minecraft.creativetab.CreativeTabs;
  99.  import net.minecraft.entity.player.EntityPlayer;
  100.  import net.minecraft.item.Item;
  101.  import net.minecraft.item.ItemStack;
  102. +import net.minecraft.nbt.NBTTagCompound;
  103.  import net.minecraft.tileentity.TileEntity;
  104.  import net.minecraft.tileentity.TileEntityChest;
  105.  import net.minecraft.util.EnumActionResult;
  106. @@ -36,10 +39,12 @@ import net.minecraft.world.storage.loot.LootContext;
  107.  import net.minecraft.world.storage.loot.LootTable;
  108.  import net.minecraft.world.storage.loot.LootTableList;
  109.  import net.minecraftforge.client.model.ModelLoader;
  110. +import net.minecraftforge.common.capabilities.Capability;
  111. +import net.minecraftforge.common.capabilities.ICapabilityProvider;
  112.  import net.minecraftforge.fml.relauncher.Side;
  113.  import net.minecraftforge.fml.relauncher.SideOnly;
  114.  
  115. -public class ItemCapacitor extends Item implements ICapacitorDataItem, IHaveRenderers {
  116. +public class ItemCapacitor extends Item implements IHaveRenderers {
  117.  
  118.    public static ItemCapacitor create(@Nonnull IModObject modObject) {
  119.      return new ItemCapacitor(modObject);
  120. @@ -68,7 +73,7 @@ public class ItemCapacitor extends Item implements ICapacitorDataItem, IHaveRend
  121.  
  122.    @Override
  123.    public @Nonnull String getUnlocalizedName(@Nonnull ItemStack stack) {
  124. -    return getUnlocalizedName() + "." + getCapacitorData(stack).getUnlocalizedName();
  125. +    return getUnlocalizedName() + "." + stack.getCapability(CapabilityCapacitorData.getCapNN(), null).getUnlocalizedName();
  126.    }
  127.  
  128.    @Override
  129. @@ -102,10 +107,27 @@ public class ItemCapacitor extends Item implements ICapacitorDataItem, IHaveRend
  130.        tooltip.add(EnderIO.lang.localize("loot.capacitor.entry." + NbtValue.CAPNO.getInt(stack), NbtValue.CAPNAME.getString(stack, "(!%$&�*&%*???")));
  131.      }
  132.    }
  133. -
  134. +  
  135.    @Override
  136. -  public @Nonnull ICapacitorData getCapacitorData(@Nonnull ItemStack stack) {
  137. -    return NullHelper.notnullJ(DefaultCapacitorData.values()[getMetadata(stack)], "Enum.values() has a null");
  138. +  @Nullable
  139. +  public ICapabilityProvider initCapabilities(@Nonnull ItemStack stack, @Nullable NBTTagCompound nbt) {
  140. +    ICapabilityProvider capProvider = new ICapabilityProvider() {
  141. +
  142. +      @Override
  143. +      public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) {
  144. +        return capability == CapabilityCapacitorData.getCapNN();
  145. +      }
  146. +
  147. +      @Override
  148. +      @Nullable
  149. +      public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
  150. +        if (capability == CapabilityCapacitorData.getCapNN()) {
  151. +          return CapabilityCapacitorData.getCapNN().cast(NullHelper.notnullJ(DefaultCapacitorData.values()[getMetadata(stack)], "Enum.values() has a null"));
  152. +        }
  153. +        return null;
  154. +      }
  155. +    };
  156. +    return new CompoundCapabilityProvider(super.initCapabilities(stack, nbt), capProvider);
  157.    }
  158.  
  159.    @Override
Add Comment
Please, Sign In to add comment