protected void setDisplayForMaterial(Material material) { info.setCaption(material.getLocalizedNameColored()); List<String> stats = Lists.newLinkedList(); List<String> tips = Lists.newArrayList(); for(IMaterialStats stat : material.getAllStats()) { List<String> info = stat.getLocalizedInfo(); if(!info.isEmpty()) { stats.add(TextFormatting.UNDERLINE + stat.getLocalizedName()); stats.addAll(info); stats.add(null); tips.add(null); tips.addAll(stat.getLocalizedDesc()); tips.add(null); } } // Traits for(ITrait trait : material.getAllTraits()) { if(!trait.isHidden()) { stats.add(material.getTextColor() + trait.getLocalizedName()); tips.add(material.getTextColor() + trait.getLocalizedDesc()); } } if(!stats.isEmpty() && stats.get(stats.size() - 1) == null) { // last empty line stats.remove(stats.size() - 1); tips.remove(tips.size() - 1); } info.setText(stats, tips); }
public ContentMaterial(Material material) { this.material = material; this.materialName = material.getIdentifier(); }
/** Takes a string and turns it into a named variant for this material. E.g. pickaxe -> wooden pickaxe */ public String getLocalizedItemName(String itemName) { if(this == UNKNOWN) { return itemName; } if(I18n.canTranslate(String.format(LOC_Prefix, getIdentifier()))) { return I18n.translateToLocalFormatted(String.format(LOC_Prefix, Util .sanitizeLocalizationString(identifier)), itemName); } return getLocalizedName() + " " + itemName; }
@SuppressWarnings("unchecked") public <T extends IMaterialStats> T getStatsOrUnknown(String identifier) { T stats = (T) getStatsSafe(identifier); if(stats == null && this != UNKNOWN) { return UNKNOWN.getStats(identifier); } return stats; }
public String getLocalizedNameColored() { return getTextColor() + getLocalizedName(); }
wood.setCraftable(true); wood.addItem("stickWood", 1, Material.VALUE_Shard); wood.addItem("plankWood", 1, Material.VALUE_Ingot); wood.addItem("logWood", 1, Material.VALUE_Ingot * 4); wood.addTrait(ecological); stone.setCraftable(true); stone.addItemIngot("cobblestone"); stone.addItemIngot("stone"); stone.setRepresentativeItem(new ItemStack(Blocks.COBBLESTONE)); stone.addTrait(cheapskate, HEAD); stone.addTrait(cheap); flint.setCraftable(true); flint.addItem(Items.FLINT, 1, Material.VALUE_Ingot); flint.setRepresentativeItem(new ItemStack(Items.FLINT)); flint.addTrait(crude2, HEAD); flint.addTrait(crude); cactus.setCraftable(true); cactus.addItemIngot("blockCactus"); cactus.setRepresentativeItem(new ItemStack(Blocks.CACTUS)); cactus.addTrait(prickly, HEAD); cactus.addTrait(spiky); obsidian.setFluid(TinkerFluids.obsidian); obsidian.setCraftable(true); obsidian.setCastable(true); obsidian.addItemIngot("obsidian");
out.put("id", material.getIdentifier()); out.put("name", material.getLocalizedName()); for (IMaterialStats stat : material.getAllStats()) { if (pmt == null || pmt.usesStat(stat.getIdentifier())) { stats.put(++i, context.makePartialChild(stat).getMeta()); for (ITrait trait : material.getAllTraits()) { if (!trait.isHidden()) { traits.put(++i, context.makePartialChild(trait).getMeta());
private static void set(Material material, String stat, float miningSpeed) { IMaterialStats oldStat = material.getStats(stat); if(oldStat instanceof HeadMaterialStats) { HeadMaterialStats headStat = (HeadMaterialStats) oldStat; HeadMaterialStats newHead = new HeadMaterialStats(headStat.durability, miningSpeed, headStat.attack, headStat.harvestLevel); material.addStats(newHead); } }
if(!mat1.hasStats(MaterialTypes.HEAD)) { continue; HeadMaterialStats stats = mat1.getStats(MaterialTypes.HEAD); List<String> row = Lists.newArrayList(); rows.add(row); row.add("<td>" + mat1.getIdentifier() + "</td>");
public boolean hasStats(String identifier) { return getStats(identifier) != null; }
@Override public String getLocalizedDesc() { return Util.translateFormatted(String.format(LOC_Desc, EXTRA_TRAIT_IDENTIFIER), material.getLocalizedName()); }
/** * Adds the trait as the default trait, will be used if no more specific one is present time. */ public Material addTrait(ITrait materialTrait) { return addTrait(materialTrait, null); }
.filter(m -> !m.isHidden()) .filter(Material::hasItems) .filter(this::isValidMaterial) PageData page = addPage(data, material.getIdentifier(), ContentMaterial.ID, getPageContent(material)); if(material.getRepresentativeItem() != null) { icon = new ElementItem(0, 0, 1f, material.getRepresentativeItem()); while(!overview.addLink(icon, material.getLocalizedNameColored(), page)) { overview = iter.next();
public static void createMaterial(final @Nonnull IAlloy alloy) { if (!TicMaterials.hasIntegration(alloy)) { return; } TicMaterials.getData(alloy).setMaterial(new Material(alloy.getBaseName(), alloy.getColor())); TicMaterials.getData(alloy).getMaterial().addCommonItems(alloy.getOreName()); TinkerRegistry.integrate(new MaterialIntegration(TicMaterials.getData(alloy).getMaterial(), null, alloy.getOreName()) { @Override public void registerFluidBlock(IForgeRegistry<Block> registry) { }; }).preInit(); // preInit needed only for correct mod identification TicMaterials.getData(alloy).stats(); }
public boolean checkMissingMaterialTooltip(ItemStack stack, List<String> tooltip, String statIdentifier) { Material material = getMaterial(stack); if(material == Material.UNKNOWN) { NBTTagCompound tag = TagUtil.getTagSafe(stack); String materialID = tag.getString(Tags.PART_MATERIAL); String error; if(!materialID.isEmpty()) { error = I18n.translateToLocalFormatted("tooltip.part.missing_material", materialID); } else { error = I18n.translateToLocal("tooltip.part.missing_info"); } tooltip.addAll(LocUtils.getTooltips(error)); return true; } else if(statIdentifier != null && material.getStats(statIdentifier) == null) { tooltip.addAll(LocUtils.getTooltips(Util.translateFormatted("tooltip.part.missing_stats", material.getLocalizedName(), statIdentifier))); return true; } return false; } }
@Override public void build(BookData book, ArrayList<BookElement> list, boolean rightSide) { addTitle(list, material.getLocalizedNameColored(), true); // the cool tools to the left/right addDisplayItems(list, rightSide ? GuiBook.PAGE_WIDTH - 18 : 0); int col_margin = 22; int top = 15; int left = rightSide ? 0 : col_margin; int y = top + 10; int x = left + 10; int w = GuiBook.PAGE_WIDTH / 2 - 10; LinkedHashSet<ITrait> allTraits = new LinkedHashSet<>(); // head stats addStatsDisplay(x, y, w, list, allTraits, MaterialTypes.HEAD); // handle addStatsDisplay(x + w, y, w - 10, list, allTraits, MaterialTypes.HANDLE); // extra y += 65 + 10 * material.getAllTraitsForStats(MaterialTypes.HEAD).size(); addStatsDisplay(x, y, w, list, allTraits, MaterialTypes.EXTRA); // inspirational quote String flavour = parent.parent.parent.strings.get(String.format("%s.flavour", material.getIdentifier())); //flavour = "How much wood could a woodchuck chuck if a woodchuck could chuck wood?"; if(flavour != null) { TextData flavourData = new TextData("\"" + flavour + "\""); flavourData.italic = true; list.add(new ElementText(x + w, y, w - 16, 60, flavourData)); } }
for(IMaterialStats stat : material.getAllStats()) { if(hasUseForStat(stat.getIdentifier())) { List<ITrait> traits = material.getAllTraitsForStats(stat.getIdentifier()); if(!traits.isEmpty()) { boolean unified = false; sb.append(TextFormatting.RESET.toString()); sb.append(material.getTextColor()); List<ITrait> traits = entry.getValue(); if(!traits.isEmpty()) {
if(material.getStats(stats.getIdentifier()) != null) { String registeredBy = "Unknown"; Map<String, ModContainer> matReg = statRegisteredByMod.get(identifier); if(Material.UNKNOWN.getStats(stats.getIdentifier()) == null) { error("Could not add Stat of type \"%s\": Default Material does not have default stats for said type. Please add default-values to the default material \"unknown\" first.", stats .getIdentifier()); material.addStats(stats); if(Objects.equals(stats.getIdentifier(), MaterialTypes.HEAD) && !material.hasStats(MaterialTypes.PROJECTILE)) { addMaterialStats(material, new ProjectileMaterialStats());
public void materialTooltip(ItemTooltipEvent event) { // check if the item belongs to a material for(Material material : TinkerRegistry.getAllMaterials()) { if(material.matches(event.getItemStack()).isPresent()) { event.getToolTip().add(TextFormatting.DARK_GRAY + material.getLocalizedName()); } } } }