* Add registry for core shaders in custom namespaces (#2901)
* Add registry for core shaders in custom namespaces
* Apply suggestions from code review
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Use Identifier.NAMESPACE_SEPARATOR instead of ":"
* Remove fabric_ prefixes from mixins
* Move test rendering to lower-right corner for test screenshots
---------
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Reorder imports to comply with checkstyle
* Rename some classes
* Fix compilation error in test mod
---------
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* add shield tag
* regenerata data
Co-authored-by: itsmiir <itsmiir@users.noreply.github.com>
(cherry picked from commit 8e4e694f3d)
(cherry picked from commit 27265b3409)
* Birch Forest Tag #2330
* Fix#2649
* Run datagen
(cherry picked from commit 315602f6c2)
(cherry picked from commit 521b5c52a5)
(cherry picked from commit 4bc6e26285)
* add windswept biome tag
* change windswept tag to windswept hills
* list out biomes and revert name change
(cherry picked from commit 1b664772cf)
(cherry picked from commit 68a20504ee)
* Fixed blocks with vanilla loot tables making strict validation of datagen fail
Previously, blocks that used `.dropsLike(block)` in their block settings to use a vanilla block's loot table, or `.dropsNothing()` to use the `minecraft:empty` loot table, would cause strict validation in data generation to fail as the vanilla loot tables wouldn't be present in the mod's own block loot table generator.
This fixes that by ensuring that the block's loot table ID has a namespace that matches the loot table generator before adding it to the missing IDs list.
Two test blocks were added to the testmod, one which uses `.dropsLike(Blocks.STONE)` to use the same loot table as Stone, and one that uses `.dropsNothing()`. Previously, these would have caused strict validation to fail as the `minecraft:stone` and `minecraft:empty` loot tables aren't generated by the testmod's generator. Now they pass just fine.
* Fixed blocks with vanilla loot tables making strict validation of datagen fail
Previously, blocks that used `.dropsLike(block)` in their block settings to use a vanilla block's loot table, or `.dropsNothing()` to use the `minecraft:empty` loot table, would cause strict validation in data generation to fail as the vanilla loot tables wouldn't be present in the mod's own block loot table generator.
This fixes that by ensuring that the block's loot table ID has a namespace that matches the loot table generator before adding it to the missing IDs list.
Two test blocks were added to the testmod, one which uses `.dropsLike(Blocks.STONE)` to use the same loot table as Stone, and one that uses `.dropsNothing()`. Previously, these would have caused strict validation to fail as the `minecraft:stone` and `minecraft:empty` loot tables aren't generated by the testmod's generator. Now they pass just fine.
Partial cherry-pick from #2526, leaving only the parts affecting
data generation.
Co-authored-by: apple502j <33279053+apple502j@users.noreply.github.com>
* Apply disabled shade from vanilla quads directly to material
- Remove QuadViewImpl.shade
* Fix enhanced AO calculation and respect non-terrain culling state
- Fix AoCalculator using AO face data computed with a potentially different shade state
- Move non-cached computation code to separate method in AoCalculator
- Turn AoCalculator's brightnessFunc and aoFunc into abstract methods
- Do not check null check world in non-terrain AO calculation since it cannot be null
- Pass through lightFace and shade state as method arguments in AoCalculator methods to prevent additional lookups
- Do not check for the axis aligned flag in AbstractQuadRenderer.shadeFlatQuad
- Respect cull parameter passed to non-terrain rendering by merging TerrainBlockRenderInfo into BlockRenderInfo
- Use reusable search pos when calling Block.shouldDrawSide to prevent additional BlockPos allocation
- Change BlockRenderContext.render and TerrainRenderContext.tessellateBlock to return void since return value is no longer used
- Remove QuadViewImpl.vertexStart since it is unused
* Add suggestions
- Mark Direction parameter to BlockRenderInfo.shouldDrawFace as Nullable
- Reuse MaterialFinder in FrameBakedModel
(cherry picked from commit 3a95925af4)
(cherry picked from commit 1adbf277ee)
* Fix#2639: Indigo fallback consumer does not respect BlendMode or emissivity
* Change renderer testmod to test material change
* Remove presumably unneeded `quad.geometryFlags()` call
* Also test emissivity
* Call emitBlockQuads in the testmod
* Allow passing the block state explicitly to the fallback consumer. Fixes#1871
* Expand testmod to also test item models
* Also fix fallback consumer ignoring material for items
* Slight changes
* Introduce new interface for the expanded fallback consumer
* Add javadoc to ModelHelper
(cherry picked from commit 9f179aa14c)
(cherry picked from commit 2e5408b563)
* Fix AO calculation
- Ensure calcFastVanilla and computeFace have parity with vanilla
- Ensure BlockStates are not queried more than once for the same position
- Replace deprecated FabricLoader#getConfigDirectory call with FabricLoader#getConfigDir
* Revert opaque sides fix
* More AO fixes and optimizations
The bitwise comparison is doing the opposite of what we want. It's currently checking for the *absence* of the BAKE_NORMALIZED flag. And if the flag is absent, it is normalizing. This should do the opposite.
* Load mod-provided data packs and DRM entries (backport of #2261)
* Port biome testmod changes
* Fix Biome API bugs (backport of #2282)
* Re-run tests