HaniiPuppy

HaniiTags basic design

Sep 30th, 2014
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.08 KB | None | 0 0
  1. package puppy.hanii.minecraft.forge.haniitags.registry;
  2.  
  3. import java.util.Collection;
  4. import java.util.Map;
  5. import net.minecraft.item.ItemStack;
  6. import puppy.hanii.library.minecraft.misc.IdDataValue;
  7.  
  8. public class HaniiTagRegistry
  9. {
  10.     public HaniiTagRegistry()
  11.     {}
  12.    
  13.     Map<IdDataValue, HaniiTag> idBasedTags;
  14.     Map<String, HaniiTag> oreDictBasedTags;
  15.     Map<NBTTagChecker<?>, HaniiTag> nbtBasedTags;
  16.    
  17.     Collection<HaniiTagEvaluator> evaluators;
  18.    
  19.     String idBasedTagsFilePath;
  20.     String oreDictBasedTagsFilePath;
  21.     String nbtBasedTagsFilePath;
  22.    
  23.     protected void addDefaultTags()
  24.     {}
  25.    
  26.     public void loadTags()
  27.     {}
  28.    
  29.     public void saveTags()
  30.     {}
  31.    
  32.     public boolean registerIDBasedTag(IdDataValue id, HaniiTag haniiTag)
  33.     {}
  34.    
  35.     public boolean registerIDBasedTag(String id, HaniiTag haniiTag)
  36.     {}
  37.    
  38.     public boolean registerIDBasedTag(String id, int dataValue, HaniiTag haniiTag)
  39.     {}
  40.    
  41.     public boolean registerOreDictBasedTag(String oreDictEntry, HaniiTag haniiTag)
  42.     {}
  43.    
  44.     public <T> boolean registerNBTBasedTag(NBTTagChecker<T> checker, HaniiTag haniiTag)
  45.     {}
  46.    
  47.     public boolean registerNBTBasedTag(String nbtTagName, HaniiTag haniiTag)
  48.     {}
  49.    
  50.     public <T> boolean registerNBTBasedTag(String nbtTagName, T nbtTagValue, HaniiTag haniiTag)
  51.     {}
  52.    
  53.     public boolean registerEvaluator(HaniiTagEvaluator evaluator)
  54.     {}
  55.    
  56.     public HaniiTag[] getTags(ItemStack itemStack)
  57.     {}
  58. }
  59.  
  60. ------------------------------------------------------------------------------------------------------
  61.  
  62. package puppy.hanii.minecraft.forge.haniitags.registry;
  63.  
  64. import java.util.Collection;
  65. import java.util.Map;
  66.  
  67. public class HaniiTag
  68. {
  69.     public HaniiTag(String name)
  70.     {}
  71.    
  72.     public HaniiTag(String name, String[] stringValues)
  73.     {}
  74.    
  75.     public HaniiTag(String name, Double[] stringValues)
  76.     {}
  77.    
  78.     public HaniiTag(String name, String[] stringValues, Double[] numericValues)
  79.     {}
  80.    
  81.     public HaniiTag(String name, Double[] numericValues, String[] stringValues)
  82.     {}
  83.    
  84.     public HaniiTag(HaniiTag haniiTag)
  85.     {}
  86.    
  87.     public static HaniiTag fromString(String stringEncodedHaniiTag)
  88.     {}
  89.    
  90.     final String name;
  91.    
  92.     Map<String, String> stringValues;
  93.     Map<String, Double> numericValues;
  94.    
  95.     // Collection of values automatically added and thus non-overridable
  96.     Collection<String> autogennedValueNames;
  97.    
  98.     public String getName()
  99.     {}
  100.    
  101.     public Map<String, String> getStringValues()
  102.     {}
  103.    
  104.     public Map<String, Double> getNumericValues()
  105.     {}
  106.    
  107.     public String getStringValue(String name)
  108.     {}
  109.    
  110.     public double getNumericValue(String name)
  111.     {}
  112.    
  113.     public String setStringValue(String name)
  114.     {}
  115.    
  116.     public double setNumericValue(String name)
  117.     {}
  118.    
  119.     @Override
  120.     public String toString()
  121.     {}
  122.    
  123.     @Override
  124.     public boolean equals(Object obj)
  125.     {}
  126.  
  127.     @Override
  128.     public int hashCode()
  129.     {}
  130. }
  131.  
  132. ------------------------------------------------------------------------------------------------------
  133.  
  134. package puppy.hanii.minecraft.forge.haniitags.registry;
  135.  
  136. import net.minecraft.item.ItemStack;
  137.  
  138. public class NBTTagChecker<T>
  139. {
  140.     // Makes it check for the existence of an NBT tag by a certain name.
  141.     public NBTTagChecker(String tagName)
  142.     {}
  143.    
  144.     // Makes it check for the existence of an NBT tag by a certain name and that the value matches the passed value.
  145.     public NBTTagChecker(String tagName, T tagValue)
  146.     {}
  147.    
  148.     public NBTTagChecker(String itemIdToRestrictTo, String tagName, T tagValue)
  149.     {}
  150.    
  151.     String itemIdToRestrictTo;
  152.     final String NBTTagName;
  153.     final T tagCheckingFor;
  154.    
  155.     public String restrictTo(String itemID)
  156.     {}
  157.    
  158.     public String isRestrictedTo()
  159.     {}
  160.    
  161.     public boolean matches(ItemStack itemStack)
  162.     {}
  163.  
  164.     @Override
  165.     public boolean equals(Object obj)
  166.     {}
  167.  
  168.     @Override
  169.     public int hashCode()
  170.     {}
  171. }
  172.  
  173. ------------------------------------------------------------------------------------------------------
  174.  
  175. package puppy.hanii.minecraft.forge.haniitags.registry;
  176.  
  177. import net.minecraft.item.ItemStack;
  178.  
  179. public abstract class HaniiTagEvaluator
  180. {
  181.     public HaniiTagEvaluator()
  182.     {}
  183.    
  184.     public HaniiTagEvaluator(String itemIdToRestrictTo)
  185.     {}
  186.    
  187.     String itemIdToRestrictTo;
  188.    
  189.     public String restrictTo(String itemId)
  190.     {}
  191.    
  192.     public String isRestrictedTo()
  193.     {}
  194.    
  195.     public abstract HaniiTag[] getTagsFor(ItemStack itemStack);
  196.  
  197.     @Override
  198.     public boolean equals(Object obj)
  199.     {}
  200.  
  201.     @Override
  202.     public int hashCode()
  203.     {}
  204. }
  205.  
  206. ------------------------------------------------------------------------------------------------------
  207.  
  208. Library class used, though not specifically for the system:
  209.  
  210. package puppy.hanii.library.minecraft.misc;
  211.  
  212. public class IdDataValue
  213. {
  214.     public IdDataValue(String ID)
  215.     {
  216.         itemID = ID;
  217.         dataValue = 0;
  218.     }
  219.    
  220.     public IdDataValue(String ID, int dataValue)
  221.     {
  222.         itemID = ID;
  223.         this.dataValue = dataValue;
  224.     }
  225.    
  226.     final String itemID;
  227.     final int dataValue;
  228.    
  229.     public String getID()
  230.     { return itemID; }
  231.    
  232.     public int getDataValue()
  233.     { return dataValue; }
  234.  
  235.     @Override
  236.     public boolean equals(Object obj)
  237.     {
  238.         if(obj == null)
  239.             return false;
  240.         if(getClass() != obj.getClass())
  241.             return false;
  242.         final IdDataValue other = (IdDataValue) obj;
  243.         if((this.itemID == null) ? (other.itemID != null) : !this.itemID.equals(other.itemID))
  244.             return false;
  245.         if(this.dataValue != other.dataValue)
  246.             return false;
  247.         return true;
  248.     }
  249.  
  250.     @Override
  251.     public int hashCode()
  252.     {
  253.         int hash = 5;
  254.         hash = 97 * hash + (this.itemID != null ? this.itemID.hashCode() : 0);
  255.         hash = 97 * hash + this.dataValue;
  256.         return hash;
  257.     }
  258. }
Advertisement
Add Comment
Please, Sign In to add comment