Skip to content

3.8.0.14 for 1.19.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@KnightMiner KnightMiner released this 03 Apr 02:25
· 256 commits to 1.19.2 since this release

Obligatory Alpha Warning

This build is an alpha. Alpha means things might break. Specific points:

  • We will do our best to prevent worlds from breaking, but make backups of worlds just in case.
  • Do not include this build in a modpack unless you plan to stick around on 1.19.2 long enough for us to get a stable release out. We don't want to constantly get reports of issues we have long since fixed because a modpack did not make a stable experience.
  • If you are an addon author, know we make no API stability guarantees until we make a beta. Check out the Roadmap for specifics on what we plan to change. Feel free to ask on our discord if you have any questions on updating.

Specific changes in this build are below.

Blood rework

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.

Meat soup

  • 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.

Venombone

  • 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.

Smeltery

  • 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).

Tools

  • Added magma embellishement from magma blocks and magma cream.
  • Added mangrove as a new wood variant
  • 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.
  • 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.
  • 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 feather falling not being marked as an incremental modifier
  • Fix part builder not always updating the material value when materials change

Slime Staff aesthetics

  • Slime staffs no longer receive metal embellishments.
  • Instead, they receive wood embellishments using 2 planks and a pattern, which changes the wood variant of the handle.
  • Dyeing now changes the color of the crystal (previously was the handle).
  • The metal band is now the part of the texture which remains the same regardless of embellishments and dyeing (was the crystal before).
  • This should overall allow better matching your staff look to the modifier thematics, and also sets up wood embellishments for future content.

World

  • 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.

Emberbark

  • The end slime island trees have been revamped
  • Trees are now styled after mangrove trees, meaning leaves no longer drop saplings, but can be bonemealed to grow "propagules".
  • Trees also notably will grow enberbark roots under the stem, which can grow though congealed slime making slimy enderbark roots.
  • Slimy enderbark roots can also be created by casting slime onto enderbark roots, and can be used as a slime dirt alternative. They may get more uses in the future.
  • Enderbark is now used to craft enderslime staffs, and works as a slimewood material variant.

Datapacks and resource packs

  • Fluid ingredients referring to static fluids now use the key fluid instead of name for consistency with item ingredients and fluid stacks.
  • Use no-load data key to stop sections with no data file from erroring. Apparently this was a problem on 1.18 but it did not produce visible errors?
  • And, Or, Any, and Inverted predicates are now registered under mantle instead of tconstruct for all types.
  • Defaulting fields in JSON will now often not include the default in our provided resources (e.g. most uses of mantle:any)
  • Ore melting recipes can now specify ore rate types of default (same behavior in byproduct as not specifying) and none (no boost on the fluid or byproduct from ore config). Note if you are just going to none or default everything, you might as well not use the ore loader.

Tools

  • Modifier requirements are now defined in the modifier JSON instead of the recipe JSON. Recipes that just wanted a lower level of themselves are defined using the new min level field.
  • Modifier recipes no longer have a output level, instead restricting to 1. This was done as it caused issues with incremental modifiers and modifier removal when higher than 1, and was never used in our content.
  • Removed tconstruct:tool predicate in favor of the improved tconstruct:tool_stack predicate.
  • Simplify JSON for variables: mining speed, melee damage, and conditional stats all automatically have access to tool variables now. Mining speed now automatically has access to conditional stat variables.

Tags

  • Moved tconstruct/modifiable/melee_or_harvest to tconstruct/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.

Models

  • Fallback textures for large tool models with no parts are now large_tool and large_broken instead of tool_large and tool_broken
  • Replaced CopperCanModel with FluidContainerModel. 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/ to textures/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 and tconstruct:charging instead of the pull IDs. This is for consistency with non-bows.

Worldgen

  • 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.

Books

  • 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
  • Fix tooltip overlap on material pages

API and technical

  • 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 for ComposableModifier 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.
  • 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.
  • Migrate many serializers to the new Mantle Loadable API
  • Seared and scorched blocks no longer have block entities when not in a smeltery structure unless they were using it for other data (e.g. tanks for the fluid). This makes them a bit faster on world load/save when used for decoration.
  • Fix spilling fluid packet not setting handled, which for some dumb reason is something you have to do even though there is no case you would not.

Models

  • MaterialRenderInfo.TintedSprite now contains emissivity (renamed luminosity).
  • Simplify quad getting on MaterialModel, notably means ToolModel should create fewer quads during model baking.
  • Added BakedUniqueGuiModel, common logic between TankModel and ToolModel. 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.

Tools

  • Removed tool modifier slot migration from the old NBT format, you should only update from recent 1.18 builds.

Modifiers

  • Added CureOnRemovalModifier, common logic between a couple slimeskull traits.
  • IncrementalArmorLevelModifier, ScaledArmorLevelModifier, and TotalArmorLevelModule were migrated to either ArmorStatModule or ArmorLevelModule, based on your goal.
  • InteractionModifier was migrated into the existing ShowOffhandModule
  • HasteModifier#HASTE is now a percentage boost instead of the total haste level.
  • Added default value to ModifierPredicate
  • Enchantment modifiers now take advantage of the new forge hook. This means they will be available to other mods looking for enchantments, and they will no longer overwrite enchantment NBT.
  • Looting hook and enchantment hook now have an armor hook that contains slot context, instead of reusing the tool hook.
  • Fix mob effect module serializing target condition to entity instead of target.
  • Fix conditional melee damage module not serializing attacker condition.
  • Removed FAST_USE_ITEM flag, as the toolstat exists.
  • Removed IncrementalModifier#getScaledLevel as Modifier#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, use TankModule 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

Utility relocation/renaming

  • 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 with RecipeResult<ItemStack>, though some usages were migrated to nullable components as they did not use the result.
  • TagNotEmptyLootCondition -> TagEmptyLootCondition
  • StatPredicate -> StatInRangePredicate