Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Model Engine Model Engine
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 35
    • Issues 35
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • Model EngineModel Engine
  • Wiki
  • The Survival Guide to Mojank's World of Madness

Last edited by Ticxo 2 years ago
Page history

The Survival Guide to Mojank's World of Madness

Minecraft 1.19.3 added a brand-new system for handling textures with the purpose of optimizing performance. However, the system at its current stage is superbly flawed and basically unusable, but suppose Mojank is too stubborn to change (which is very likely,) here is an explanation of the system.

Atlases

Atlases are the new ways for Minecraft to recognize a texture file. Currently, there are 10 default atlases used:

  • banner_patterns
  • beds
  • blocks
  • chests
  • mob_effects
  • paintings
  • particles
  • shield_patterns
  • shulker_boxes
  • signs

The one we are interested in is the blocks atlas since it handles all block and item textures (yes, don't ask me why.)

Sources

Modifying an atlas is not simple at all. It's overcomplicated and the options given are hard to use at best. To help better understand what the fuck they were thinking, we must first understand sources.

Sources can be treated as a list of commands that tell Minecraft how to handle the textures in a resource pack. There are currently 4 sources.

Directory

The directory source is used to include all textures inside a folder.

Argument Description
source Defines the path to the folder containing the textures. This path is relative to the textures folder, cannot be backtracked with ../, and targets across all namespaces and resource packs, including the default minecraft namespace.
prefix Defines the path that reference to source

Example: Say we want to stitch the texture inside the textures/custom/entity folder, and be able to reference the texture with mob/<texture_name>, we can add a source configured like so:

{
    "type": "directory",
    "source": "custom/entity",
    "prefix": "mob/"
}

Single

The single source is similar to the directory, but instead of specifying a folder, you specify a single texture file instead.

Argument Description
resource Defines the resource ID of this texture. As in, the path you input when referencing a texture in a model file.
sprite Defines the path that point towards the texture file

Example: Say we want to use the texture custom_a/textures/custom/entity/boar.png in this item model:

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "custom_b:mob/pig"
  }
}

Add a source configured like so:

{
    "type": "single",
    "resource": "custom_b:mob/pig",
    "sprite": "custom_a:custom/entity/boar"
}

Filter

The filter source filters out textures from being stitched. In other words, it excludes textures. It takes in 2 arguments, but must be contained within a pattern object (for some goddamn reason.)

Argument Description
namespace Regex condition that filters out texture when the namespace matches
path Regex condition that filters out texture when the path matches

Examples: Say we want to completely remove all textures associated with the minecraft namespace, we can do this:

{
    "type": "filter",
    "pattern": {
        "namespace": "minecraft"
    }
}

Or, if we want to remove all item textures of all namespace and resource packs, we can do this:

{
    "type": "filter",
    "pattern": {
        "path": "item"
    }
}

Unstitch

Not much is known about this source. If only Mojank can release the documentation to use this (lol as if they would care.)

Conclusion

Mojank has gone mad and there is no saving them.

TL;DR

To use convert a 1.19.2 pack to 1.19.3, follow these steps:

  • Create a blocks.json file in assets/minecraft/atlases
  • Paste the following:
{
    "sources": [
        {
            "type": "directory",
            "source": "entity",
            "prefix": "entity/"
        }
    ]
}
  • Profit
Clone repository
  • Before You Start
    • Home
    • Limitations
    • Comparison: ItemsAdder
    • Where is MoLang support?
    • Converting RP to 1.19.3
  • Modeling
    • Recommended tool
    • Making your first model
    • Importing and Exporting
    • Animating your model
    • Scriptable Keyframes
  • Mythic Mobs Integration
    • Mechanics: Model
    • Mechanics: VFX
    • Targeters
    • Conditions
  • API
    • Javadoc