@Override public void load() { if(material == null) { material = TinkerRegistry.getMaterial(materialName); } }
@Override public void load() { if(modifierName == null) { modifierName = parent.name; } if(modifier == null) { modifier = TinkerRegistry.getModifier(modifierName); } if(tool == null) { tool = Lists.newArrayList(); for(String entry : demoTool) { Item item = Item.REGISTRY.getObject(new ResourceLocation(entry)); if(item != null) { tool.add(item); } } } }
private void handleAlloyIMCs() { for(NBTTagList taglist : alloys) { List<FluidStack> fluids = Lists.newLinkedList(); for(int i = 0; i < taglist.tagCount(); i++) { NBTTagCompound tag = taglist.getCompoundTagAt(i); FluidStack fs = FluidStack.loadFluidStackFromNBT(tag); if(fs == null) { fluids.clear(); break; } fluids.add(fs); } // needs at least 3 fluids if(fluids.size() > 2) { FluidStack output = fluids.get(0); FluidStack[] input = new FluidStack[fluids.size() - 1]; input = fluids.subList(1, fluids.size()).toArray(input); TinkerRegistry.registerAlloy(output, input); log.debug("Added integration alloy: " + output.getLocalizedName()); } } }
public static void addMaterial(Material material, IMaterialStats stats) { addMaterial(material); addMaterialStats(material.identifier, stats); }
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); }
public static void registerAlloy(FluidStack result, FluidStack... inputs) { if(result.amount < 1) { error("Alloy Recipe: Resulting alloy %s has to have an amount (%d)", result.getLocalizedName(), result.amount); } if(inputs.length < 2) { error("Alloy Recipe: Alloy for %s must consist of at least 2 liquids", result.getLocalizedName()); } registerAlloy(new AlloyRecipe(result, inputs)); }
TinkerRegistry.registerTableCasting(new BucketCastingRecipe(Items.BUCKET)); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(Blocks.ICE, bucket), water, 305)); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(Blocks.PACKED_ICE, bucket * 2), water, 310)); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(Blocks.SNOW, bucket), water, 305)); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(Items.SNOWBALL, bucket / 8), water, 301)); TinkerRegistry.registerMelting(Items.ROTTEN_FLESH, TinkerFluids.blood, 40); if(TinkerCommons.matSlimeBallBlood != null) { TinkerRegistry.registerTableCasting(TinkerCommons.matSlimeBallBlood.copy(), ItemStack.EMPTY, TinkerFluids.blood, 160); TinkerRegistry.registerMelting(TinkerCommons.matSlimeBallPurple, TinkerFluids.purpleSlime, Material.VALUE_SlimeBall); ItemStack slimeblock = new ItemStack(TinkerCommons.blockSlimeCongealed, 1, BlockSlime.SlimeType.PURPLE.meta); TinkerRegistry.registerMelting(slimeblock, TinkerFluids.purpleSlime, Material.VALUE_SlimeBall * 4); slimeblock = new ItemStack(TinkerCommons.blockSlime, 1, BlockSlime.SlimeType.PURPLE.meta); TinkerRegistry.registerMelting(slimeblock, TinkerFluids.purpleSlime, Material.VALUE_SlimeBall * 9); TinkerRegistry.registerMelting(MeltingRecipe.forAmount(RecipeMatch.of("stone", Material.VALUE_SearedMaterial), TinkerFluids.searedStone, Material.VALUE_Ore())); TinkerRegistry.registerMelting(MeltingRecipe.forAmount(RecipeMatch.of("cobblestone", Material.VALUE_SearedMaterial), TinkerFluids.searedStone, Material.VALUE_Ore())); TinkerRegistry.registerMelting(MeltingRecipe.forAmount(RecipeMatch.of("obsidian", Material.VALUE_Ore()), TinkerFluids.obsidian, Material.VALUE_Ore())); TinkerRegistry.registerBasinCasting(new ItemStack(Blocks.OBSIDIAN), ItemStack.EMPTY, TinkerFluids.obsidian, Material.VALUE_Ore()); TinkerRegistry.registerMelting(Items.IRON_HORSE_ARMOR, TinkerFluids.iron, Material.VALUE_Ingot * 4); TinkerRegistry.registerMelting(Items.GOLDEN_HORSE_ARMOR, TinkerFluids.gold, Material.VALUE_Ingot * 4);
TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(pair.getLeft(), pair.getRight()), fluid)); TinkerRegistry.registerTableCasting(new PreferenceCastingRecipe(ingotOre.getLeft(), RecipeMatch.ofNBT(castIngot), fluid, ingotOre.getRight())); TinkerRegistry.registerTableCasting(new PreferenceCastingRecipe(nuggetOre.getLeft(), RecipeMatch.ofNBT(castNugget), fluid, nuggetOre.getRight())); TinkerRegistry.registerBasinCasting(new PreferenceCastingRecipe(blockOre.getLeft(), TinkerRegistry.registerTableCasting(new PreferenceCastingRecipe(plateOre.getLeft(), RecipeMatch.ofNBT(castPlate), fluid, plateOre.getRight())); TinkerRegistry.registerTableCasting(new PreferenceCastingRecipe(gearOre.getLeft(), RecipeMatch.ofNBT(castGear), fluid, TinkerRegistry.registerTableCasting(new CastingRecipe(castIngot, RecipeMatch.of(ingotOre.getLeft()), fs, true, true)); TinkerRegistry.registerTableCasting(new CastingRecipe(castNugget, RecipeMatch.of(nuggetOre.getLeft()), fs, true, true)); TinkerRegistry.registerTableCasting(new CastingRecipe(castPlate, RecipeMatch.of(plateOre.getLeft()), fs, true, true)); TinkerRegistry.registerTableCasting(new CastingRecipe(castGear, RecipeMatch.of(gearOre.getLeft()), fs, true, true));
private void registerExtraTraitModifiers() { TinkerRegistry.getAllMaterials().forEach(this::registerExtraTraitModifiers); extraTraitMods = Lists.newArrayList(extraTraitLookup.values()); }
for(IToolPart toolPart : TinkerRegistry.getToolParts()) { if(!toolPart.canBeCasted()) { continue; TinkerRegistry.registerMelting(stack, fluid, toolPart.getCost()); TinkerRegistry.registerTableCasting(stack, cast, fluid, toolPart.getCost()); TinkerRegistry.registerTableCasting(new CastingRecipe(cast, RecipeMatch.ofNBT(stack), fs, RecipeMatch rm = RecipeMatch.ofNBT(clayCast); FluidStack fs = new FluidStack(fluid, toolPart.getCost()); TinkerRegistry.registerTableCasting(new CastingRecipe(stack, rm, fs, true, false)); TinkerRegistry.registerTableCasting(new CastingRecipe(clayCast, RecipeMatch.ofNBT(stack), fs, ItemStack stack = TinkerRegistry.getShard(material); int cost = TinkerRegistry.getShard().getCost(); TinkerRegistry.registerMelting(stack, fluid, cost); TinkerRegistry.registerTableCasting(stack, castShard, fluid, cost); TinkerRegistry.registerTableCasting(new CastingRecipe(castShard, RecipeMatch.ofNBT(stack),
public MeltingRecipe register() { TinkerRegistry.registerMelting(this); return this; }
public static void addMaterialStats(Material material, IMaterialStats stats, IMaterialStats... stats2) { addMaterialStats(material, stats); for(IMaterialStats stat : stats2) { addMaterialStats(material, stat); } }
@Override public void apply() { RecipeMatch rm = null; if(cast != null) { List<ItemStack> validCasts = cast.getItems().stream().map(CraftTweakerMC::getItemStack).collect(Collectors.toList()); if(validCasts.isEmpty()) CraftTweakerAPI.logInfo("Could not find matching items for " + cast.toString() + ". Substituting empty cast for recipe with output " + output.getDisplayName()); else if(validCasts.size() == 1) //Keep compat to old handler if(validCasts.get(0).getMetadata() == OreDictionary.WILDCARD_VALUE) { rm = RecipeMatch.of(validCasts, output.getCount()); } else { rm = RecipeMatch.ofNBT(validCasts.get(0), output.getCount()); } else rm = RecipeMatch.of(validCasts, output.getCount()); } if(table) TinkerRegistry.registerTableCasting(new CastingRecipeTweaker(output, rm, new FluidStack(fluid, amount), time, consumeCast, false)); else TinkerRegistry.registerBasinCasting(new CastingRecipeTweaker(output, rm, new FluidStack(fluid, amount), time, consumeCast, false)); }
@Subscribe @Override public void postInit(FMLPostInitializationEvent event) { super.postInit(event); discoverArrows(); TinkerRegistry.registerTableCasting(BoltCoreCastingRecipe.INSTANCE); }
for(Material mat : TinkerRegistry.getAllMaterials()) { if(mat.identifier.toLowerCase().startsWith(matName)) { completions.add(mat.identifier); Material mat = TinkerRegistry.getMaterial(args[0]); if(mat == Material.UNKNOWN) { throw new CommandException("Unknown material: " + args[0]); for(Material mat : TinkerRegistry.getAllMaterials()) { scanMaterial(mat, sender);
if(TinkerRegistry.getTrait(trait.getIdentifier()) == null) { log.error("addTrait: Trying to apply unregistered Trait {}", trait.getIdentifier()); return; IModifier modifier = TinkerRegistry.getModifier(trait.getIdentifier());
if(blacklisted || TinkerRegistry.getMelting(irecipe.getRecipeOutput()) != null) { continue; int amount = known.get(fluid) / output.getCount(); output.setCount(1); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of(output, amount), fluid)); log.trace("Added automatic melting recipe for {} ({} {})", irecipe.getRecipeOutput().toString(), amount, fluid .getName());
IModifier modifier = TinkerRegistry.getModifier(entry.getKey()); if(modifier != null && modifier.hasTexturePerMaterial()) { MaterialModel materialModel = new MaterialModel(ImmutableList.of(new ResourceLocation(entry.getValue()))); BakedMaterialModel bakedModel = materialModel.bakeIt(state, format, bakedTextureGetter); for(Material material : TinkerRegistry.getAllMaterials()) { IBakedModel materialBakedModel = bakedModel.getModelByIdentifier(material.getIdentifier()); if(materialBakedModel != bakedModel) {
/** * Adds a new drying recipe * * @param input Input ItemStack * @param output Output ItemStack * @param time Recipe time in ticks */ public static void registerDryingRecipe(ItemStack input, ItemStack output, int time) { if(output.isEmpty() || input.isEmpty()) { return; } addDryingRecipe(new DryingRecipe(new RecipeMatch.Item(input, 1), output, time)); }
public AbstractTraitLeveled(String identifier, String suffix, int color, int maxLevels, int levels) { super(identifier + suffix, color); this.name = identifier; this.levels = levels; // don't overwrite the modifier alias if one with less levels already is present // we basically always want the level1 one to be associated with the modifier used IModifier modifier = TinkerRegistry.getModifier(name); if(modifier != null) { if(modifier instanceof AbstractTraitLeveled && ((AbstractTraitLeveled) modifier).levels > this.levels) { TinkerRegistry.registerModifierAlias(this, name); } } else { TinkerRegistry.registerModifierAlias(this, name); } aspects.clear(); this.addAspects(new ModifierAspect.LevelAspect(this, maxLevels), new ModifierAspect.DataAspect(this, color)); }