diff --git a/CHANGELOG.md b/CHANGELOG.md index c1dd06b7..7d92e57d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -98,4 +98,10 @@ - Fixed wrong leaf texture on cherry wood stumps. - Fixed bad serialization of empty blackboards causing stacking issues. +### 1.0.0-beta.19 + +- Fixed blackboard issues with ModernFix, improved texture fetching reliability. +- Fixed glassboards not integrating correctly with LambdaBetterGrass. +- Fixed some typo in the compatibility system of wood-based features. + [EMI]: https://modrinth.com/mod/emi "EMI Modrinth page" diff --git a/gradle.properties b/gradle.properties index dc89fa83..a2fd353c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx1G # Mod properties -mod_version=1.0.0-beta.18 +mod_version=1.0.0-beta.19 maven_group=dev.lambdaurora archives_base_name=aurorasdecorations modrinth_id=GOqAnOfW diff --git a/src/main/java/dev/lambdaurora/aurorasdeco/blackboard/Blackboard.java b/src/main/java/dev/lambdaurora/aurorasdeco/blackboard/Blackboard.java index a9a6024a..a704601e 100644 --- a/src/main/java/dev/lambdaurora/aurorasdeco/blackboard/Blackboard.java +++ b/src/main/java/dev/lambdaurora/aurorasdeco/blackboard/Blackboard.java @@ -17,17 +17,20 @@ package dev.lambdaurora.aurorasdeco.blackboard; +import dev.lambdaurora.aurorasdeco.AurorasDeco; import net.fabricmc.fabric.api.renderer.v1.RendererAccess; import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView; import net.fabricmc.fabric.api.util.TriState; -import net.minecraft.client.texture.Sprite; +import net.minecraft.client.MinecraftClient; import net.minecraft.feature_flags.FeatureFlagBitSet; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; +import net.minecraft.screen.PlayerScreenHandler; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -44,8 +47,7 @@ * @since 1.0.0 */ public class Blackboard implements BlackboardHandler { - @ClientOnly - private static Sprite WHITE_SPRITE; + private static final Identifier WHITE_SPRITE_ID = AurorasDeco.id("special/white"); private final short[] pixels = new short[256]; private boolean lit; @@ -219,13 +221,10 @@ public void setLit(boolean lit) { /* Rendering */ - @ClientOnly - public static void setWhiteSprite(Sprite whiteSprite) { - WHITE_SPRITE = whiteSprite; - } - @ClientOnly public Mesh buildMesh(Direction facing, int light) { + var sprite = MinecraftClient.getInstance().getSpriteAtlas(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE).apply(WHITE_SPRITE_ID); + var meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); var emitter = meshBuilder.getEmitter(); @@ -249,7 +248,7 @@ public Mesh buildMesh(Direction facing, int light) { int squareY = 15 - y; emitter.square(facing, x / 16.f, squareY / 16.f, (x + 1) / 16.f, (squareY + 1) / 16.f, 0.928f) - .spriteBake(WHITE_SPRITE, MutableQuadView.BAKE_LOCK_UV) + .spriteBake(sprite, MutableQuadView.BAKE_LOCK_UV) .color(color, color, color, color) .material(material); if (light != 0) diff --git a/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedBlackboardModel.java b/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedBlackboardModel.java index 3c965b29..95f2f538 100644 --- a/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedBlackboardModel.java +++ b/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedBlackboardModel.java @@ -17,8 +17,6 @@ package dev.lambdaurora.aurorasdeco.client.model; -import dev.lambdaurora.aurorasdeco.AurorasDeco; -import dev.lambdaurora.aurorasdeco.blackboard.Blackboard; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.ModelBakeSettings; @@ -28,8 +26,6 @@ import net.minecraft.client.resource.Material; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.ModelIdentifier; -import net.minecraft.resource.ResourceManager; -import net.minecraft.screen.PlayerScreenHandler; import net.minecraft.util.Identifier; import org.quiltmc.loader.api.minecraft.ClientOnly; @@ -39,9 +35,6 @@ @ClientOnly public class UnbakedBlackboardModel implements AuroraUnbakedModel { - private static final Material WHITE = new Material(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE, - AurorasDeco.id("special/white")); - protected final UnbakedModel baseModel; public static UnbakedBlackboardModel of(ModelIdentifier id, UnbakedModel baseModel, @@ -79,7 +72,6 @@ public BakedModel bake( protected BakedModel bakeBaseModel( ModelBaker loader, Function textureGetter, ModelBakeSettings rotationContainer, Identifier modelId ) { - Blackboard.setWhiteSprite(textureGetter.apply(WHITE)); return this.baseModel.bake(loader, textureGetter, rotationContainer, modelId); } } diff --git a/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedGlassboardModel.java b/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedGlassboardModel.java index d93ad9e0..2060b4c8 100644 --- a/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedGlassboardModel.java +++ b/src/main/java/dev/lambdaurora/aurorasdeco/client/model/UnbakedGlassboardModel.java @@ -88,7 +88,6 @@ public class UnbakedGlassboardModel extends UnbakedBlackboardModel { LOGGER.warn("Could not load glassboard model part (" + corner + ", " + type + "): could not locate the blockstate file."); } else { try (var reader = new InputStreamReader(resource.get().open())) { - deserializationContext.setStateFactory(block.getStateManager()); var map = ModelVariantMap.fromJson(deserializationContext, reader); diff --git a/src/main/java/dev/lambdaurora/aurorasdeco/registry/WoodType.java b/src/main/java/dev/lambdaurora/aurorasdeco/registry/WoodType.java index d8c80db5..dbd51aec 100644 --- a/src/main/java/dev/lambdaurora/aurorasdeco/registry/WoodType.java +++ b/src/main/java/dev/lambdaurora/aurorasdeco/registry/WoodType.java @@ -433,7 +433,10 @@ public enum ComponentType { return topId; // For mods that don't use standard texture paths but logically evil. - topId = new Identifier(componentId.getNamespace(), "block/" + component.woodType().getId().getPath() + "/log/top"); + topId = new Identifier( + componentId.getNamespace(), + "block/" + component.woodType().getId().getPath() + "/" + component.woodType().getLogType() + "/top" + ); if (resourceManager.getResource(AuroraUtil.toAbsoluteTexturesId(topId)).isPresent()) return topId; diff --git a/src/main/resources/assets/aurorasdeco/bettergrass/states/glassboard.json b/src/main/resources/assets/aurorasdeco/bettergrass/states/glassboard.json new file mode 100644 index 00000000..b6f4004f --- /dev/null +++ b/src/main/resources/assets/aurorasdeco/bettergrass/states/glassboard.json @@ -0,0 +1,4 @@ +{ + "type": "layer", + "data": "aurorasdeco:bettergrass/data/blackboard" +} \ No newline at end of file diff --git a/src/main/resources/assets/aurorasdeco/bettergrass/states/waxed_glassboard.json b/src/main/resources/assets/aurorasdeco/bettergrass/states/waxed_glassboard.json new file mode 100644 index 00000000..b6f4004f --- /dev/null +++ b/src/main/resources/assets/aurorasdeco/bettergrass/states/waxed_glassboard.json @@ -0,0 +1,4 @@ +{ + "type": "layer", + "data": "aurorasdeco:bettergrass/data/blackboard" +} \ No newline at end of file