-
Notifications
You must be signed in to change notification settings - Fork 790
Tinkers' Construct 3 Roadmap
Last updated after this commit
These features will also be included in the first 1.19.2 release.
- Strong bones and boon of sssss will no longer function if cheated onto a non-helmet. before they partly functioned but some features required helmets.
- Fix conditional mining speed module not checking the holder condition (affects airborne trait)
- Fix being able to cast water on oxidized copper to make oxidized copper
- Fix tank module serializer having the wrong default keys
- Fix extra ingredients in tool recipes being ignored in the tinker station under some circumstances
- Fix tool pages in materials and you loading from the wrong folder
- Fix book index links not working for sections with modifiers in multiple groups
- Added
ModifierHookProvider
, interface to create modules that don't serialize to JSON. It just adds default hooks so you don't have to manually specify them in the module map builder. - Added
BasicModifier
, extraction of the base class forComposableModifier
which includes a builder for registering a modifier with modules statically. - Added modifier priority command, to list all modifiers, the hooks they implement, and their priority value. Useful for ensuring hooks run in the right order.
- Moved modifier usage command from
/tconstruct modifier_usage
to/tconstruct report modifier_usage
. Partly for organization, partly to make tab completion on/tconstruct modifiers
easier.
Last updated after this commit
Any changes marked TODO 1.18 are planned for 1.18 as well. Changes marked 1.18? are being considered for inclusion in 1.18.
After thinking it over for awhile, blood does not really have a good place in TiC 3. Originally in TiC 1, blood was a slime substitute with a few funny plans, but mostly was a placeholder for future content that never got implemented. TiC 3 has so many ways of obtaining slime that a slime substitute is less necessary, and most of its plans were scrapped.
- Removed blood slime variant, including the blood block, blood balls, congealed slime, and the blood fluid.
- The fallback for mob melting is now liquid soul (also obtained from melting soul sand). Figured 1 underutalized fluid is better than 2.
- Blood embellishments still exist, crafted using bloodshroom planks. Other slimy planks craft the appropriate embellishment.
- Blood cake now uses honey in place of blood, providing much nicer flavor.
- Piggybackpacks are now crafted using skyslime on a saddle.
- Blood foliage (such as bloodshrooms) is unaffected, except getting the word "slimy" replaced with "bloody".
- Blazing blood is also unaffected by this change.
- Edible animals such as cows, pigs, rabbits, fish, and sheep melt into meat soup instead of blood.
- Can be poured into wooden bowls to use as a food, or used with modifiers such as slurping.
- Since its just farm animals, there are no downsides to eating it unlike blood.
- Used in alloying pig iron alongside honey and iron.
- Replaces bloodbone as we need blood for bloodbone
- Created by pouring venom (from melting spiders and spider eyes) on bone or bone tool parts.
- Stats are the same as bloodbone used to be, putting it in tier 2 melee.
- Trait boosts damage when poisoned, higher levels of poison grant more damage.
- Consider drinking liquid venom, which grants poison and strength.
- Raging (bloodbones trait) will return on a different material in the future.
- Ducts (the filtered drain) are crafted using gold instead of cobalt. This is to free up cobalt for use in the sublimery (and allow earlier access to filtered drains).
- Added magma embellishement from magma blocks and magma cream.add to 1.18?
- Removed slime slings, they were replaced by flinging, springing, bonking, and warping (from 1.18). Apply to a slime staff for the most comparable experience.
- Added ichor cake, it is currently uncraftable but that will change in the future.
- Skyslime islands no longer spawn with congealed earth slime in the lakes, instead having just congealed skyslime.
- Blood islands no longer spawn with congealed blood, instead having just congealed ichor. The lakes also now have magma blocks at the bottom.
- Removed the earthslime mob, it only existed to work around a Minecraft limitation that prevented us from spawning vanilla slimes on the islands. Forge has a new API that fixed that. Only change in behavior is vanilla slimes cannot spawn with armor.
- Fluid ingredients referring to static fluids now use the key
fluid
instead ofname
for consistency with item ingredients and fluid stacks. - Use
no-load
data key to stop sections with no data file from erroring.TODO 1.18 Apparently this was a problem on 1.18 but it did not produce visible errors?
- Moved
tconstruct/modifiable/melee_or_harvest
totconstruct/modifiable/loot_capable_tool
as all recipe usages got switched to compound ingredients (as we wanted more fine grained control between unarmed and ranged also wanting many modifiers). You probably should migrate to fine grained control instead of the loot tag unless doing loot. - Removed
tconstruct:tooltips/water
as we did not end up encountering any other bottleable water variants, the default behavior handles buckets and milibuckets.
- Fallback textures for large tool models with no parts are now
large_tool
andlarge_broken
instead oftool_large
andtool_broken
- Replaced
CopperCanModel
withFluidContainerModel
. Its basically a specialized version of forge's fluid container model, ditching covers (which we don't need) but handling fluid stacks and static fluid tints. - Moved fluid textures from
textures/block/fluid/
totextures/fluid
and organized into folders. - Fluid textures are now controlled by files in
mantle/fluid_texture/
instead of the block model, means JSON exists for powdered snow and potion fluids now. - Bow and crossbow charging states are now under
tconstruct:charge
andtconstruct:charging
instead of the pull IDs. This is for consistency with non-bows.
- Slime islands are now registered in JSON, this allows modifying them or adding your own islands more easily.
- Cobalt ore and geodes are now registered in JSON, meaning their config options were removed. Forge has documentation on how this registration works which is applicable to modpack makers.
- Datagen now sorts the keys due to a change Mojang made. This may cause some files with trivial updates when you regenerate data.
- Casting recipes now pass their serializer in as a constructor parameter to handle basin/table recipes instead of using subclasses and factory methods.
- Ditch various registry migrations, including materials, items, fluids, etc. from 1.16 and 1.18 features. We assume if you are updating, you are updating from the latest 1.18 build.
-
MaterialRenderInfo.TintedSprite
now contains emissivity (renamed luminosity). - Simplify quad getting on
MaterialModel
, notably meansToolModel
should create fewer quads during model baking. - Added
BakedUniqueGuiModel
, common logic betweenTankModel
andToolModel
. There is a more advanced version in forge though its very bulky to construct. - Models no longer stitch the fallback texture if they have a unique texture. Likely will have no impact on addons as fallbacks are only used if the unique texture is missing, but maybe someone was doing something weird.
- Fix race condition between material render info and tool/tool part models.needed on 1.18?
- Removed tool modifier slot migration from the old NBT format, you should only update from recent 1.18 builds.
- Added
CureOnRemovalModifier
, common logic between a couple slimeskull traits. -
IncrementalArmorLevelModifier
,ScaledArmorLevelModifier
, andTotalArmorLevelModule
were migrated to eitherArmorStatModule
orArmorLevelModule
, based on your goal. -
InteractionModifier
was migrated into the existingShowOffhandModule
-
HasteModifier#HASTE
is now a percentage boost instead of the total haste level. - Added default value to
ModifierPredicate
TODO 1.18 - Removed
FAST_USE_ITEM
flag, as the toolstat exists. - Removed
IncrementalModifier#getScaledLevel
asModifier#getEffectiveLevel
exists. - Removed the non-chargeable variant of "General Interaction" hooks, you are now required to use the chargeable variant which has been renamed to
GENERAL_INTERACT
. This simplifies implementation notably by removing the return on the finished using methods. - Removed capability variant of drawspeed, since we moved to a NBT variant. See bows for an example of how to use the new method.
- Removed
TankModifier
, useTankModule
instead. Note some helpers were ditched as they were just less efficient ways of manually working with the tank. - Removed old module API (that is,
Modifier#getModule(Class<T>)
). - Removed all methods on modifier that have been migrated to a modifier hook or another form. With the exception of
processLoot
, remaining methods are not getting migrated to hooks. - Removed all modifier classes for modifiers migrated to JSON
- Many deprecated constructors/methods were removed, check for an alternative with different paramters.
- Many classes where repackaged, notably modifier hooks. A reimport may be needed for static usages/custom modules but the functionality should still be there.
-
TooltipKey and
SafeClientAccess` were moved to Mantle. -
IJsonPredicate
was moved to Mantle, this notably means the IDs for many predicates are now under Mantle. -
ModifierUtil
: Looting and harvest enchantment static helpers were moved to the related modifier hook interface. -
ToolDamageUtil
: Removed durability display hooks as they exist in the durability display interface -
ValidatedResult
was replaced withRecipeResult<ItemStack>
, though some usages were migrated to nullable components as they did not use the result. -
TagNotEmptyLootCondition
->TagEmptyLootCondition
-
StatPredicate
->StatInRangePredicate
See also #5064
Our next target is 1.19.2 as it seems to be more popular than 1.19.4. 1.20 will be considered after we have a 1.19 port. We currently have the code mostly ported, but it is not well enough tested for a release. In addition, we have some content and API changes we want to make before a release, which is not limited to what is described in this section.
- Implement fluid physics now that Forge has an API for it.
- Smeltery/foundry blocks should not have a block entity when not in the structure unless they use it for other reasons.
- Mud cleanup, since vanilla has mud now. Consider a blood fluid with an in world flowing form, but that is not strictly needed.
- Move away from named section transformers in books.
- Migrate tool definition data fully to hooks, will make it easier to support merging in the future.
- Move recipe modifier restrictions (e.g. requirements on netherite) to a modifier hook and implement in JSON.
- Migrate to the new enchantment
- Cleanup spilling effect API
- Fix or remove EFLNs, they have been broken in their explosion logic for too long.
We are considering one last 1.16.5 bug fix release with some of the bugs that have been compiled since that version. 1.18.2 will continue to receive support as well.
Ancient tools are being considered for 1.19, but may be held off until 1.20.
- Ancient tools are unique tools that appear as loot and cannot be crafted.
- Each type of tool will have a unique method of obtaining.
- Each tool features a randomized head material which determines stats and repair material. They can additionally be modified, and may start with some random modifiers.
- Each tool combines two functions in a way not previously seen in craftable tools.
- New tools potentially include:
- War Pick: a cross between a pickaxe and a bow, can be discovered in illager outposts or raids
- Knight's Shovel: the shovel wielded by one of the greatest warriors of the past, found in dungeons or in the hands of zombies
- Battle Sign: The Zisteaonian combat shield of legend, found in nether fortresses and pigmen hands
- Ancient Trident: a throwable high range weapon, found in deep sea chests and wielded by drowned
- Boxing Gloves: chestplate ideal for unarmed combat
- Metal Wings: does what it says on the tin
- And more!
- Expect the tools to be slightly stronger than craftable tools on average but weaker than a well designed crafted tool.
- Tools will have some randomized stats balancing them in favor of one of the two functions.
The sublimery is currently targeted for an early 1.19 build, likely before the first stable 1.19 release.
- Upside-down smeltery unlocked at the end of the nether.
- Created using slimestone (slime on quartz or calcite) and cobalt.
- Allows melting items into gases, processing redstone, ichor, glowstone, experience, lapis, and dragon's breath.
- Can melt entities into experience.
- Cannot hold liquids, only gases.
- Inverted faucets and casting channels will be made out of quartz bricks from casting molten quartz.
- Instead of having a casting basin and a casting table, will just have 1 casting block, name pending.
- This is partly for thematics, as gas infusing a block or item does not make sense in an open block.
- This is partly for visuals, as both current casting blocks would make items inside difficult to see when upsidedown.
- This is partly for gameplay, as there will just be fewer gas casting recipes.
- In addition, slimestone may be used for some new channel variants to allow pumping fluid upwards or gas downwards.
- Slimestone will be used to create a new block that extracts fluid from an item into an adjacent tank. Unlike melting, this is designed for items that have an explicate container (e.g. a bucket).
- Another block for filling a fluid container from an adjacent tank will also likely be included.
- Both blocks will extract or fill on a redstone pulse, and allow hopper interaction to place the container inside and extract it.
- Chromata
- General tier 4 material alloyed from redstone, glowstone, and lapis.
- Trait will relate to light in some way, details to be decided.
- Slimebronze
- Harvest tier 4 material alloyed from ichor, redstone, and copper. Since it requires both liquids and gases, an alloyer will be required to make this.
- Trait will increase drop rates of "dust" ore blocks (redstone, lapis, etc.) by consuming additional overslime.
- Lifebone
- Weapon tier 4 material composite from pouring liquid experience on bones.
- Trait is raging (previously belonging to bloodbone) which increases tool damage at low player health.
The soul forge at earliest will come in 1.19, though 1.20 or later is more likely.
- End multiblock, suck the souls out of materials and put into other materials.
- Allow for the creation of hollow, soul steel, and other cool tool materials.
- New way to add modifiers to tools, replacing embossments from 1.12.
- Originally, enderslime staffs were going to get 3 starting soul slots, however further consideration suggested a new staff was better suited.
- The addition of the soul forge will lead to enderslime staffs starting with 1 soul slot.
- Crafted from a hollow gem, hollow ingots, and whatever in hollow seems most like wood.
- Starts with 2 upgrade slots, 2 ability slots, and 3 soul slots.
- Unstable ore of the end
- Will explode if mined improperly
- To properly mine the ore, you need to use the melting modifier and obtain it as a liquid
- If casted into ingots, the ingots will explode after a short time
- To process the ore:
- Place the teantium ingot in the soul forge, and extract the shaluth and soulsteel souls. This leaves behind hollow
- Place the two souls back into separate hollow ingots to use
- Shaluth and soulsteel will be tier 4 materials used in alloys. Unstable may be used in other crafting recipes but cannot be used as a material
- Dragonstone
- Tier 3 material made used as the building block for the soul forge.
- Composite from dragons breath and endstone.
- Trait will increase tool speed against all blocks (even ineffective) at the cost of loss of block drops (like blasting in 1.12).
- Shaluth
- Tier 4 material made from splitting teantium.
- Soulsteel
- Tier 4 melee material made from splitting teantium.
- Temporarily lowers the targets max health at the cost of consuming the attackers XP.
- If the attacker runs out of XP, their max health will lower.
- Re'dar
- Tier 4 harvest material made from casting liquid teantium on quartz, then shaping it in the part builder.
- Causes explosions when mining blocks.
- Hollow
- Tier 4 special material made from removing the soul from metals.
- Grants the tool 1 additional soul slot.
- KnightSlime
- Tier 5 general material alloyed from enderslime, shaluth, and dragonstone.
- Converts picked up XP into overslime.
- Ebonite
- Tier 5 weapon material made by forging the souls of blazing bone, lifebone, and soulsteel.
- Charges as the player takes wither damage, then unleashes powerful effects based on the charge.
- Matthium
- Tier 5 harvest material alloyed using soulsteel and some undecided gases.
- Temporarily boosts mining speed after attacking, and boosts attack speed after mining.
- Alexandrite
- Tier 5 special material made by forging the souls of diamond, emerald, and shaluth.
- Hollow gem
- Grants a tool an additional soul slot.
- Gardite
- Modifier in a composite using rainbow slime and likely a hollow gem.
- Applies a stat boost to the tool based on how many low tier materials it contains.
- Soul slots
- Obtained using either hollow gems, or the hollow material.
- Can be filled with souls from various materials, granting their trait.
- May have additional methods of adding more soul slots at the cost of applying curses to your tool.
This section contains ideas with no direct target on the roadmap. They may get included at random times among other features discussed above.
Smeltery interface
- Allows accessing the UI fluid tank
- Comparator signal for tank level
- On pulse, switches fluid order (bottom to top? Top to bottom?)
**Better Enderslime Islands
- New plant variant.
- Currently thinking a variant of chorus that can grow upsidedown or rightside up.
- Will replace both the trees and the vines.
- Somehow will include a variant of wood.
- Possibly bridges? Don't know, not a worldgen guy, but I hear jigsaw blocks are neat.
Ichor Islands
- Ichor slimes?
- Ichor slime islands?
- Would all be on the ceiling
- Geodes may partially replace this, not sure
Boomerangs
- Replacement for shurikens
- Way to deal melee damage from far away
- Should come back, hopefully
Mending
- Consumes experience fluid from the tools tank to repair the tool
- Replaces mending moss
- May end up being a trait of one of the tier 4 or 5 materials
Some modifier with a cool name
- Consumes experience orbs to fill the tool's tank with XP
- Pairs well with mendings, hint hint
- You may also wish to pair some tanks with mending, goal is for mending to take fewer slots than unbreakable but more than overslime
Throwing
- Shiny is obsessed with this modifier
- Will be cool, but will never live up to Shiny's expectations
- Ideally will have different effects based on the tool
Dual Harvesting
- Like dual wielding, but for harvest
- Will let you harvest blocks with the tool in the offhand in some way. May just clone the 1.12 logic, may require you to hold right click.
Charge attack
- Way to upgrade broad tools by granting them a special ability on holding right click
Quick ability
- Way to upgrade small tools by granting them a non-combat ability on pressing right click