@Override public ToolNBT buildTagData(List<Material> materials) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); HeadMaterialStats plate1 = materials.get(2).getStatsOrUnknown(MaterialTypes.HEAD); HeadMaterialStats plate2 = materials.get(3).getStatsOrUnknown(MaterialTypes.HEAD); ToolNBT data = new ToolNBT(); data.head(head, head, plate1, plate2); // head itself counts for more data.handle(handle); // harvestlevel is always determined by the head data.harvestLevel = head.harvestLevel; data.durability *= DURABILITY_MODIFIER; return data; } }
@Override public ToolNBT buildTagData(List<Material> materials) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); ExtraMaterialStats extra = materials.get(2).getStatsOrUnknown(MaterialTypes.EXTRA); HandleMaterialStats handle2 = materials.get(3).getStatsOrUnknown(MaterialTypes.HANDLE); ToolNBT data = new ToolNBT(); data.head(head); data.extra(extra); data.handle(handle, handle2); data.durability *= DURABILITY_MODIFIER; return data; } }
@Override public ToolNBT buildTagData(List<Material> materials) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); HeadMaterialStats plate = materials.get(2).getStatsOrUnknown(MaterialTypes.HEAD); ExtraMaterialStats binding = materials.get(3).getStatsOrUnknown(MaterialTypes.EXTRA); ToolNBT data = new ToolNBT(); data.head(head, plate); data.extra(binding); data.handle(handle); data.durability *= DURABILITY_MODIFIER; return data; } }
@Override public ToolNBT buildTagData(List<Material> materials) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); HeadMaterialStats plate = materials.get(2).getStatsOrUnknown(MaterialTypes.HEAD); ExtraMaterialStats binding = materials.get(3).getStatsOrUnknown(MaterialTypes.EXTRA); ToolNBT data = new ToolNBT(); data.head(head, plate); data.extra(binding); data.handle(handle); data.attack += 2; data.durability *= DURABILITY_MODIFIER; return data; }
/** * Builds a default tool from: * 1. Handle * 2. Head * 3. Accessoire (if present) */ protected ToolNBT buildDefaultTag(List<Material> materials) { ToolNBT data = new ToolNBT(); if(materials.size() >= 2) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); // start with head data.head(head); // add in accessoires if present if(materials.size() >= 3) { ExtraMaterialStats binding = materials.get(2).getStatsOrUnknown(MaterialTypes.EXTRA); data.extra(binding); } // calculate handle impact data.handle(handle); } // 3 free modifiers data.modifiers = DEFAULT_MODIFIERS; return data; }
@Override public ToolNBT buildTagData(List<Material> materials) { HandleMaterialStats handle = materials.get(0).getStatsOrUnknown(MaterialTypes.HANDLE); HeadMaterialStats head = materials.get(1).getStatsOrUnknown(MaterialTypes.HEAD); HeadMaterialStats shield = materials.get(2).getStatsOrUnknown(MaterialTypes.HEAD); ExtraMaterialStats guard = materials.get(3).getStatsOrUnknown(MaterialTypes.EXTRA); ToolNBT data = new ToolNBT(); data.head(head, shield); data.extra(guard); data.handle(handle); data.attack *= 1.3f; data.attack += 3f; // triple durability! data.durability *= DURABILITY_MODIFIER; return data; }