public List<String> getTooltipStatsInfo(Material material) { ImmutableList.Builder<String> builder = ImmutableList.builder(); for(IMaterialStats stat : material.getAllStats()) { if(hasUseForStat(stat.getIdentifier())) { List<String> text = stat.getLocalizedInfo(); if(!text.isEmpty()) { builder.add(""); builder.add(TextFormatting.WHITE.toString() + TextFormatting.UNDERLINE + stat.getLocalizedName()); builder.addAll(stat.getLocalizedInfo()); } } } return builder.build(); }
public static List<TextData> getStatLines(IMaterialStats stats) { List<TextData> lineData = new ArrayList<>(); for(int i = 0; i < stats.getLocalizedInfo().size(); i++) { TextData text = new TextData(stats.getLocalizedInfo().get(i)); text.tooltip = LocUtils.convertNewlines(stats.getLocalizedDesc().get(i)).split("\n"); lineData.add(text); lineData.add(new TextData("\n")); } return lineData; }
if(hasUseForStat(stat.getIdentifier())) { List<ITrait> traits = material.getAllTraitsForStats(stat.getIdentifier()); if(!traits.isEmpty()) { boolean unified = false; mapping.put(entry.getKey() + ", " + stat.getLocalizedName(), entry.getValue()); mapping.remove(entry.getKey()); unified = true; mapping.put(stat.getLocalizedName(), traits);
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); }
/** * Do not use this function directly stats. Use TinkerRegistry.addMaterialStats instead. */ public Material addStats(IMaterialStats materialStats) { this.stats.put(materialStats.getIdentifier(), materialStats); return this; }
if(pmt.usesStat(stats.getIdentifier())) { tooltips.addAll(stats.getLocalizedInfo()); for(ITrait trait : pmt.getApplicableTraitsForMaterial(material)) { if(!usedTraits.contains(trait)) {
protected String getStatName(String type) { return Material.UNKNOWN.getStats(type).getLocalizedName(); }
@Override public void executeCommand(MinecraftServer server, ICommandSender sender, String[] args) { CraftTweakerAPI.logCommand("Tinkers Construct Materials:"); for(Material material : TinkerRegistry.getAllMaterials()) { StringBuilder builder = new StringBuilder("-").append(material.identifier).append("\n"); for(IMaterialStats stats : material.getAllStats()) { for(String s : stats.getLocalizedInfo()) { builder.append(s.replaceAll(TextFormatting.RESET.toString(), "").replaceAll("[^\\x00-\\x7F]", "")).append("\n"); } } CraftTweakerAPI.logCommand(builder.toString()); } sender.sendMessage(getLinkToCraftTweakerLog("Tinkers Construct Materials list generated", sender)); } });
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)); }
public void overrideResult(T newStats) { if(!stats.getIdentifier().equals(newStats.getIdentifier())) { TinkerRegistry.log.error("StatRegisterEvent: New stats don't match old stats type. New is {}, old was {}", newStats.getIdentifier(), stats.getIdentifier()); return; } this.newStats = newStats; this.setResult(Result.ALLOW); } }
@Nonnull @Override public Map<Object, Object> getMeta(@Nonnull IMaterialStats stats) { Map<Object, Object> out = Maps.newHashMap(); out.put("id", stats.getIdentifier()); out.put("name", stats.getLocalizedName()); return out; } }
static void putStatTrace(String materialIdentifier, IMaterialStats stats, ModContainer trace) { if(!statRegisteredByMod.containsKey(materialIdentifier)) { statRegisteredByMod.put(materialIdentifier, new HashMap<>()); } statRegisteredByMod.get(materialIdentifier).put(stats.getIdentifier(), trace); }
/** * Returns the given type of stats if the material has them. Returns null Otherwise. */ private IMaterialStats getStatsSafe(String identifier) { if(identifier == null || identifier.isEmpty()) { return null; } for(IMaterialStats stat : stats.values()) { if(identifier.equals(stat.getIdentifier())) { return stat; } } return null; }
public static void addMaterialStats(String materialIdentifier, IMaterialStats stats) { if(cancelledMaterials.contains(materialIdentifier)) { return; } if(!materials.containsKey(materialIdentifier)) { error(String.format("Could not add Stats \"%s\" to \"%s\": Unknown Material", stats.getIdentifier(), materialIdentifier)); return; } Material material = materials.get(materialIdentifier); addMaterialStats(material, stats); }
List<ITrait> traits = material.getAllTraitsForStats(stats.getIdentifier()); .filter(part -> part.hasUseForStat(stats.getIdentifier())) .map(part -> part.getItemstackWithMaterial(material)) .collect(Collectors.toList()));
public static void addMaterialStats(Material material, IMaterialStats stats) { if(material == null) { error(String.format("Could not add Stats \"%s\": Material is null", stats.getIdentifier())); return; if(material.getStats(stats.getIdentifier()) != null) { String registeredBy = "Unknown"; Map<String, ModContainer> matReg = statRegisteredByMod.get(identifier); if(matReg != null) { registeredBy = matReg.get(stats.getIdentifier()).getName(); identifier, stats.getIdentifier(), registeredBy)); return; 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()); return; putStatTrace(identifier, stats, activeMod); if(Objects.equals(stats.getIdentifier(), MaterialTypes.HEAD) && !material.hasStats(MaterialTypes.PROJECTILE)) { addMaterialStats(material, new ProjectileMaterialStats());
Map<Integer, Object> stats = Maps.newHashMap(); for (IMaterialStats stat : material.getAllStats()) { if (pmt == null || pmt.usesStat(stat.getIdentifier())) { stats.put(++i, context.makePartialChild(stat).getMeta());