Tinkers' Construct

Tinkers' Construct

Mod

Tinker a little, modify all the tools, build a smeltery, then tinker a little more. The classic modular tool mod.

Client and server EquipmentMagicTechnology

516.4k downloads
450 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

Changelog

This will be the last major content update for 1.18.2. From this point on we will be focusing on 1.19.2, though we may return to 1.18.2 for bugs and technical changes. Requires a Mantle update.

This update implements several new APIs for addons to use which replace some of the older APIs. The old APIs are left in place for 1.18 so no addon should break (make a bug report if one does), however 1.19 will ditch the old APIs.

Tools

  • Renamed "Attack Damage" to "Melee Damage" to make it more clear it does not affect arrows
  • Renamed "Projectile Damage" to "Projectile Power" as some new modifiers use the stat for non-damage reasons
  • Renamed "Harvest Tier" to "Mining Tier" as all melee stats started with "Melee", so it makes sense mining stats start with "Mining"
  • Excavators now apply the "bonk" particle on attack, from frypans in TiC 2
  • Pickadzes no longer get bane of sssss for free, and mattocks no longer get sticky. This was partly done as sticky is being removed, and partly as both tools do so many harvest things that the melee trait feels kinda tacked on.
  • Kamas once again start with tilling like they did in 1.16. This means either a mattock or a kama lets you till, giving a bit more flexability in getting that important modifier. If you manually added tilling to your kama, consider salvaging it using the modifier worktable
  • Gave skyslime, earthslime, and ichor staffs different ranged weapon stats.
  • Fix indestructible tools despawning after 10 minutes

Enderslime Staff

  • New staff variant made from enderslime crystals, nahuatl, and netherite. Repaired with nahuatl
  • Starts with reach 2, 3 upgrade slots, 1 defense slot, and 2 ability slots
  • Higher block amount than other staffs save earthslime staffs
  • Recipe may change as future content gets implemented

Modifiers

  • Emerald now grants a 50% repair bonus (sorta like the cultivated modifier)
  • Many ranged modifiers got the applicable tag adjusted to allow new modifiers to use the applicable modifiers. Some got broadened from BOWS to RANGED, some the opposite, and some special cased to allow staffs specifically.
  • Disallow applying a swappable modifier recipe (e.g. rebalanced) if that variant is already on the tool
  • Scope now works on crossbows and on staffs that are charging up
  • Bucketing now has the default priority, so you can reorder it more freely
  • Parrying on daggers now only works in the offhand, as it was providing undesirable results with dual wielding when used in the main hand
  • Fix tool belt salvage not having a max level
  • Fix too little fire protection on staffs and shields. The fire tick time reduction from fire protection requires modifying the vanilla enchantment, which is tied behind a config option just in case it breaks something.
  • Fix spilling effects not properly applying partial levels after level 1
  • Fix vanilla enchantments added via modifiers sometimes receiving arbitrarily inflated values on tools

Sling Modifiers

  • Added flinging, causes you to launch away from the targeted block (like earthslime slings)
  • Added springing, causes you to leap forward in the air (like skyslime sling)
  • Added bonking, causes the targeted mob to fly away (like ichor sling). On melee tools, bonking deals damage when targeting (like frypans in TiC 2)
  • Added warping, causes you to teleport forwards
  • All sling modifiers support using power and velocity to boost the distance, and can reduce draw time with quick draw
  • Flinging, springing, and bonking also are boosted by knockback, for when they are used on melee tools
  • In 1.19, slime slings will be removed in favor of these new modifiers.

Counter attack

  • Fiery and freezing now both work on armor as new counterattack effects
  • Freezing also works on melee tools now
  • Sticky is no longer craftable, will likely be removed in 1.19 as its just inferior freezing
  • Wetting now only applies if the damage is not blocked, notably meaning you won't consume fire resistance potions from fire damage if the effect is active.

Spitting

  • Launches fluid from the tools tank as a projectile that behaves like llama spit
  • Projectile applies an effect to the target
  • Can be applied to any tool that interacts on right click (mostly melee weapons and staffs)
  • Higher levels launch more fluid like multishot
  • Staffs can receive power to boost the amount of fluid in each shot (which makes the effect stronger)
  • Staffs can also receive velocity to boost the speed and range, and drawspeed to fire faster
  • Staffs can receive punch to boost the knockback of the fluid

Blocking

  • Can now be applied to longbows and crossbows to block while you charge up. Don't ask how you shoot straight from a sideways bow.
  • With tools that have modifiers that charge up (like sling modifiers or spitting), blocking can be applied to block as it charges.

Piercing rework

  • Costs pointed dripstone instead of cactus
  • Instead of dealing extra damage that ignores armor, now cancels 1 point of armor per level
  • Grants a flat melee damage boost of 0.5 per level
  • Reduced max level to 3; by combining vein hammers and bone that means a max of 9 levels
  • Renamed to pierce to better disambiguate from the vanilla enchantment
  • Thorns no longer grants piercing to unarmed attacks, unarmed uses the same pierce modifier as tools now.
  • Old behavior still exists under the ID tconstruct:piercing, with the new behavior under tconsturct:pierce. This also means old tools will still be using the old version of the modifier, you can use the modifier worktable to manually migrate if desired.

Smeltery

  • Added cheese, cast milk into a basin or ingot cast then wait several minutes for it to congeal. Can be used as a building block or eaten to restore a bit of hunger and remove a random status effect.
  • Made powdered snow a fluid so you can store it in tanks. May get a use in recipes in the future
  • Added tinted seared glass and tinted scorched glass, can be used to build a smeltery/foundry with windows without letting light through, because that might be useful
  • Added seared soul glass and scorched soul glass, can be used to build a smeltery/foundry but can also be walked though to make easy doors into the structure
  • Pistons now break seared tanks instead of being blocked, and dispensers can place seared tanks. Has some neat potential smeltery automation.
  • Fix scorched glass not being registered to its block entity properly. This could possibly cause issues breaking a foundry with a large window after a reload, however the lack of reports suggests that it somehow did not break anything?
  • Fix some recipes using tanks allowing filled tanks, causing the fluid to get consumed instead of the tank itself

Guide

Books

  • Added icons to modifier pages in materials and you.

  • Moved travelers gear pages from materials and you to puny smelting.

  • Book sections on tools and modifiers now load pages based on item tags/modifier tags, meaning its possible for addons to add new pages to the books.

  • Presently supported sections include materials and you (small tools), puny smelting (upgrades and slotless modifiers), mighty smelting (broad tools, abilities and defense modifiers), tinkers gadgetry (slimestaffs), and the encyclopedia (all 3 tool types, armor, and all 4 modifier types). First 5 books also have an armor section that shows if the tag is filled (materials and you/mighty smelting are hidden by default).

  • Filtered the tool lists on many modifier pages to show only tools relevant to the topic for modifiers that have different effects based on tool type. For instance, fiery works differently on bows vs swords, so now the bow page displays just bows in the tool preview.

  • Modifier pages no longer show "missing modifier" if the modifiers recipe is removed, should make the book more usable if packs change recipes.

  • Fix many typos across the books and language, probably added some new ones

Advancements

  • New Advancement: Netherite Tier - create a tool with the netherite harvest tier
  • New Advancement: Perfect Aim - create a bow with 1.0 accuracy
  • New Advancement: One Shot - create a melee weapon that does 21+ flat damage
  • Goal of these was mostly to test out some new datapack tool predicate features, will be useful in the loot modifier hook rework
  • Updated existing advancements with new materials and modifiers

Misc

  • Added support for Diet. Tasty now counts as eating Tinkers Construct bacon, while slurping fluids are all mapped to their related food item (with blood mapped to bottle o' blood and molten pig iron mapped to bacon).
  • Fix "large" cobalt ore veins averaging 4 blocks instead of 6 making cobalt slightly less common than it should be
  • Fix fluids tagged as water getting turned into water bottles (as the vanilla tags unfortunately do not represent water with mods)
  • Fix a crash with "School of Magic" which is entirely their fault (returning null from a vanilla nonnull method), but given its a trivial fix and that mod seems to be dead figured I might as well patch it
  • Fix multiple overlapping sounds when shift clicking in part builders or tinkers stations/anvils

Translation

  • Update Japanese translation (thanks koh-gh!)
  • Update Korean translation (thanks Sn0w0wl and gisellevonbingen!)
  • Update Ukrainian translation (thanks BetaCarotina!)
  • Update Chinese translation (thanks ChuijkYahus and Cactusstudent!)
  • Note that due to the timing of the translation updates and other book changes, even updated translations may still need some additional work. We are looking into a better way to process translations to make it easier to contribute and to get the updates faster.

Technical

  • You can now use overrides to add an existing material to a new stat type for the sprite generators.
  • Advanced tooltips now show material and modifier IDs for tools (though modifier IDs is locked behind config since its pretty bulky)
  • Migrated aqua affinity to the vanilla enchantment, the APIs that implemented it before are now deprecated for removal in 1.19
  • Starting modifier slots from the tool are now stored in volatile data instead of persistent data. This means they will automatically update if the datapack changes, and are guaranteed to be added to new tools no matter how they are created
  • To make the above change work without breaking old tools, the item stack NBT tic_persistent_data has been renamed to tic_persistent. This will automatically be migrated, but the semantics of the two are slightly different so it may be worth updating code that uses the name directly.
  • In recipes that support material variant inputs (e.g. composite casting), you can now use mod:name#default to match only mod:name with no variant (as mod:name ignores variants).
  • Diamond, Emerald, and Netherite no longer apply larger effects at higher levels. This was done as it makes the modifiers a bit more efficient and we never used the higher levels in the mod.
  • Skyslimes now use the modifier tag tconstruct:slime_defense to select protection modifiers that randomly appear on their helmets at higher difficulties.

Composable modifiers

  • New modifier serializer intended to replace almost all existing serializers
  • Instead of having a serializer per behavior, the composable serializer handles common properties and has a registry of modules that can be added
  • Modules can do things like add enchantments, add stats, add attributes, add modifier slots, etc.
  • Many conditional stat modifiers are migrated to this system by taking advantage of formulas and serve as examples until we get the documentation written. These are expressed in reverse polish notation, at this time whether we add a standard infix formula parser is undecided.
    • Formulas can take advantage of variables to give them more flexability. Loosely speaking, a variable is just an additional property from the world, tool, or other context included in the formula. Variables allows us to load those properties only for modifiers that need them.
    • We choose reverse polish notation as its much simpler to parse, and internally most infix formula parsers store the formula as reverse polish so we needed that logic anyways.
    • If you do not understand how to use it, feel free to ask for help on our discord.

Modifier modules

  • Many methods on Modifier have been migrated to the modifier module API
  • At this time the main thing unmigrated is the loot table hook, as I want to reconsider whether to just commit to global loot managers for that instead of java implementations.
  • This should make it easier to both combine modifier effects and migrate them to dynamic modifiers for flexibility

Modifier traits

  • Modifiers can now automatically add another modifier whenever they are applied
  • Main usecase is getting around technical restrictions for hardcoded modifier effects
  • Can also be used for dynamically added modifiers, such as from an Iguana Tinker Tweaks style random modifier kit

Dependencies

Files

TConstruct-1.18.2-3.7.0.152.jar(16.04 MiB) Primary Download

Project members

KnightMiner

Owner

alexbegt

Member

mDiyo

Member

Details

Licensed MIT
Published 2 years ago
Updated 2 months ago