diff --git a/build.gradle b/build.gradle index 6d2abd0..b81fa1a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.2.5-SNAPSHOT' + id 'fabric-loom' version '0.2.6-SNAPSHOT' id 'maven-publish' } @@ -93,4 +93,4 @@ publishing { } } } -tasks.publish.dependsOn build \ No newline at end of file +tasks.publish.dependsOn build diff --git a/gradle.properties b/gradle.properties index 9b2f9f0..4063d82 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ org.gradle.jvmargs=-Xmx1G -mc_version = 1.14.4 -yarn_mappings = 1.14.4+build.5 -loader_version = 0.4.8+build.159 -fabric_version = 0.3.0+build.207 +mc_version = 1.15.2 +yarn_mappings = 1.15.2+build.12:v2 +loader_version = 0.7.8+build.184 +fabric_version = 0.4.30+build.291-1.15 javagl_version = 0.3.0 -mod_version = 1.1.0 +mod_version = 1.2.0 mod_group = com.github.NerdHubMC -mod_name = FOML \ No newline at end of file +mod_name = FOML diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/nerdhub/foml/obj/OBJBuilder.java b/src/main/java/nerdhub/foml/obj/OBJBuilder.java index 40f71c9..a2bfc49 100644 --- a/src/main/java/nerdhub/foml/obj/OBJBuilder.java +++ b/src/main/java/nerdhub/foml/obj/OBJBuilder.java @@ -12,21 +12,25 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; +import net.minecraft.client.util.SpriteIdentifier; +import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; import java.util.List; import java.util.Map; +import java.util.function.Function; public class OBJBuilder { - public static final Sprite DEFAULT_SPRITE = MinecraftClient.getInstance().getSpriteAtlas().getSprite(SpriteAtlasTexture.BLOCK_ATLAS_TEX); + public static final SpriteIdentifier DEFAULT_SPRITE = new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEX, null); private MeshBuilder meshBuilder; private QuadEmitter quadEmitter; private final Obj obj; private final List mtlList; + private Function textureGetter; public OBJBuilder(Obj obj, List mtlList) { meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); @@ -64,12 +68,12 @@ public Mesh build() { Mtl mtl = findMtlForName(matName); FloatTuple diffuseColor = null; FloatTuple specularColor = null; - Sprite mtlSprite = DEFAULT_SPRITE; + Sprite mtlSprite = textureGetter.apply(DEFAULT_SPRITE); if(mtl != null) { diffuseColor = mtl.getKd(); specularColor = mtl.getKs(); - mtlSprite = getMtlSprite(mtl.getMapKd()); + mtlSprite = getMtlSprite(new Identifier(mtl.getMapKd())); } for (int i = 0; i < matGroupObj.getNumFaces(); i++) { @@ -114,7 +118,11 @@ public Mtl findMtlForName(String name) { return null; } - public Sprite getMtlSprite(String name) { - return MinecraftClient.getInstance().getSpriteAtlas().getSprite(name); + public Sprite getMtlSprite(Identifier name) { + return textureGetter.apply(new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEX, name)); + } + + public void setTextureGetter(Function textureGetter) { + this.textureGetter = textureGetter; } } diff --git a/src/main/java/nerdhub/foml/obj/baked/OBJBakedModel.java b/src/main/java/nerdhub/foml/obj/baked/OBJBakedModel.java index bf908ff..bd39f1e 100644 --- a/src/main/java/nerdhub/foml/obj/baked/OBJBakedModel.java +++ b/src/main/java/nerdhub/foml/obj/baked/OBJBakedModel.java @@ -16,7 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.world.ExtendedBlockView; +import net.minecraft.world.BlockRenderView; import java.util.List; import java.util.Random; @@ -39,15 +39,15 @@ public List getQuads(BlockState blockState, Direction direction, Rand } @Override - public void emitBlockQuads(ExtendedBlockView blockView, BlockState state, BlockPos pos, Supplier randomSupplier, RenderContext context) { - if(mesh != null) { + public void emitBlockQuads(BlockRenderView blockRenderView, BlockState blockState, BlockPos blockPos, Supplier supplier, RenderContext context) { + if (mesh != null) { context.meshConsumer().accept(mesh); } } @Override public void emitItemQuads(ItemStack stack, Supplier randomSupplier, RenderContext context) { - if(mesh != null) { + if (mesh != null) { context.meshConsumer().accept(mesh); } } @@ -58,10 +58,15 @@ public boolean useAmbientOcclusion() { } @Override - public boolean hasDepthInGui() { + public boolean hasDepth() { return true; } + @Override + public boolean isSideLit() { + return false; + } + @Override public boolean isBuiltin() { return false; @@ -69,7 +74,7 @@ public boolean isBuiltin() { @Override public Sprite getSprite() { - return MinecraftClient.getInstance().getSpriteAtlas().getSprite(SpriteAtlasTexture.BLOCK_ATLAS_TEX); + return MinecraftClient.getInstance().getSpriteAtlas(SpriteAtlasTexture.BLOCK_ATLAS_TEX).apply(null); } @Override diff --git a/src/main/java/nerdhub/foml/obj/baked/OBJUnbakedModel.java b/src/main/java/nerdhub/foml/obj/baked/OBJUnbakedModel.java index cf3ead8..bd18219 100644 --- a/src/main/java/nerdhub/foml/obj/baked/OBJUnbakedModel.java +++ b/src/main/java/nerdhub/foml/obj/baked/OBJUnbakedModel.java @@ -1,5 +1,6 @@ package nerdhub.foml.obj.baked; +import com.mojang.datafixers.util.Pair; import nerdhub.foml.obj.OBJBuilder; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.ModelBakeSettings; @@ -7,6 +8,8 @@ import net.minecraft.client.render.model.UnbakedModel; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.texture.Sprite; +import net.minecraft.client.texture.SpriteAtlasTexture; +import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.util.Identifier; import java.util.*; @@ -31,15 +34,16 @@ public Collection getModelDependencies() { } @Override - public Collection getTextureDependencies(Function var1, Set var2) { - List sprites = new ArrayList<>(); - builder.getMtlList().forEach(mtl -> sprites.add(new Identifier(mtl.getMapKd()))); + public Collection getTextureDependencies(Function unbakedModelGetter, Set> unresolvedTextureReferences) { + List sprites = new ArrayList<>(); + builder.getMtlList().forEach(mtl -> sprites.add(new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEX, new Identifier(mtl.getMapKd())))); return sprites; } @Override - public BakedModel bake(ModelLoader var1, Function var2, ModelBakeSettings var3) { + public BakedModel bake(ModelLoader loader, Function textureGetter, ModelBakeSettings rotationContainer, Identifier modelId) { + builder.setTextureGetter(textureGetter); return new OBJBakedModel(builder, transform); } -} \ No newline at end of file +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 9ba4563..f45a228 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "foml", - "version": "1.1.0", + "version": "1.2.0", "name": "FOML", "description": "Fabric OBJ Model Loader", "authors": [ @@ -9,7 +9,7 @@ ], "contact": { "homepage": "https://minecraft.curseforge.com/projects/FOML", - "sources": "https://github.com/NerdHubMC/FOML" + "sources": "https://github.com/OnyxStudios/FOML" }, "license": "MIT", "icon": "assets/foml/icon.png", @@ -20,7 +20,7 @@ ] }, "depends": { - "fabricloader": ">=0.4.0", + "fabricloader": ">=0.7.0", "fabric": "*" }, "custom": {