public static boolean belongsToToolPart(ResourceLocation location) { for(IToolPart toolpart : TinkerRegistry.getToolParts()) { if(!(toolpart instanceof Item)) { continue; // WHY?! } try { Optional<ResourceLocation> storedResourceLocation = MaterialModelLoader.getToolPartModelLocation(toolpart); if(storedResourceLocation.isPresent()) { ResourceLocation stored = storedResourceLocation.get(); ResourceLocation modelLocation = new ResourceLocation(stored.getResourceDomain(), "item/" + stored.getResourcePath()); IModel partModel = ModelLoaderRegistry.getModel(modelLocation); // the actual texture of the part ResourceLocation baseTexture = partModel.getTextures().iterator().next(); if(baseTexture.toString().equals(location.toString())) { return true; } } } catch(Exception e) { return false; } } return false; }
parts.addAll(TinkerRegistry.getToolParts().stream() .filter(part -> part.hasUseForStat(stats.getIdentifier())) .map(part -> part.getItemstackWithMaterial(material))
private void addStatsDisplay(int x, int y, int w, ArrayList<BookElement> list, LinkedHashSet<ITrait> allTraits, String stattype) { IMaterialStats stats = material.getStats(stattype); if(stats == null) { return; } List<ITrait> traits = material.getAllTraitsForStats(stats.getIdentifier()); allTraits.addAll(traits); // create a list of all valid toolparts with the stats List<ItemStack> parts = Lists.newLinkedList(); for(IToolPart part : TinkerRegistry.getToolParts()) { if(part.hasUseForStat(stats.getIdentifier())) { parts.add(part.getItemstackWithMaterial(material)); } } // said parts next to the name if(parts.size() > 0) { ElementItem display = new ElementTinkerItem(x, y + 1, 0.5f, parts); list.add(display); } // and the name itself ElementText name = new ElementText(x + 10, y, w - 10, 10, stats.getLocalizedName()); name.text[0].underlined = true; list.add(name); y += 12; List<TextData> lineData = Lists.newArrayList(); // add lines of tool information lineData.addAll(getStatLines(stats)); lineData.addAll(getTraitLines(traits, material)); list.add(new ElementText(x, y, w, GuiBook.PAGE_HEIGHT, lineData)); }
for(IToolPart part : TinkerRegistry.getToolParts()) { if(part instanceof Item) { registry.registerSubtypeInterpreter((Item)part, toolPartInterpreter);
for(IToolPart toolPart : TinkerRegistry.getToolParts()) { if(!toolPart.canBeCasted()) { continue;
for(IToolPart toolPart : TinkerRegistry.getToolParts()) { if(toolPart.canBeCasted()) { if(toolPart instanceof MaterialItem) {