diff --git a/build.gradle b/build.gradle index bb71d50..790250a 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'com.github.johnrengelman.shadow' -version = "0.5.4" +version = "0.6.0-beta1" group= "pl.asie.foamfix" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "foamfix" diff --git a/src/main/java/pl/asie/foamfix/client/FoamyItemLayerModel.java b/src/main/java/pl/asie/foamfix/client/FoamyItemLayerModel.java index 7c70814..c1487b1 100644 --- a/src/main/java/pl/asie/foamfix/client/FoamyItemLayerModel.java +++ b/src/main/java/pl/asie/foamfix/client/FoamyItemLayerModel.java @@ -32,7 +32,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.concurrent.TimeUnit; public class FoamyItemLayerModel implements IRetexturableModel { private static final ResourceLocation MISSINGNO = new ResourceLocation("missingno"); @@ -51,14 +50,17 @@ public class FoamyItemLayerModel implements IRetexturableModel { float.class, float.class,float.class,float.class,float.class, float.class, float.class,float.class,float.class,float.class)); } catch (Exception e) { + // We don't need this (there's a slow fallback route), so just warn the user. e.printStackTrace(); } BUILD_QUAD = handle; + handle = null; try { handle = MethodHandleHelper.findFieldGetter(ItemLayerModel.class, "overrides"); } catch (Exception e) { - e.printStackTrace(); + // We DO need THIS, so throw a runtime exception if we can't have it. + throw new RuntimeException(e); } OVERRIDES_GET = handle; } @@ -233,6 +235,7 @@ public static IBakedModel bake(ItemLayerModel parent, final IModelState state, f ImmutableList.Builder textureAtlas = new ImmutableList.Builder<>(); if (BUILD_QUAD != null) { + // Fast route! for (int i = 0; i < textures.size(); i++) { TextureAtlasSprite sprite = bakedTextureGetter.apply(textures.get(i)); textureAtlas.add(sprite); @@ -248,6 +251,7 @@ public static IBakedModel bake(ItemLayerModel parent, final IModelState state, f } } } else { + // Slow fallback route :-( for (int i = 0; i < textures.size(); i++) { TextureAtlasSprite sprite = bakedTextureGetter.apply(textures.get(i)); for (BakedQuad quad : ItemLayerModel.getQuadsForSprite(i, sprite, format, transform)) { diff --git a/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfo.java b/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfo.java index 135fd6b..c2e2ee7 100644 --- a/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfo.java +++ b/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfo.java @@ -25,12 +25,13 @@ public boolean fill(IBlockAccess access, BlockPos blockPos, boolean[][][] transl int zo = blockPos.getZ() - 1 - pos.getZ(); for(int x = 0; x <= 2; x++) { - int xb = xo+x; + int xb = xo + x; for (int y = 0; y <= 2; y++) { int yb = yo+y; - int offset = (xb*18*18) + (yb*18) + zo; + int zb = zo; + int offset = (xb*18*18) + (yb*18) + zb; + for (int z = 0; z <= 2; z++) { - int zb = zo+z; if (!initialized[offset]) initialize(access,offset,xb,yb,zb); @@ -40,7 +41,7 @@ public boolean fill(IBlockAccess access, BlockPos blockPos, boolean[][][] transl b[x][y][z] = this.b[offset]; ao[x][y][z] = this.ao[offset]; - offset++; + offset++; zb++; } } } @@ -51,12 +52,12 @@ public boolean fill(IBlockAccess access, BlockPos blockPos, boolean[][][] transl private void initialize(IBlockAccess access, int offset, int x, int y, int z) { BlockPos pos = this.pos.add(x, y, z); IBlockState state = access.getBlockState(pos); + fullCube[x][y][z] = state.isFullCube(); translucent[offset] = state.isTranslucent(); int brightness = state.getPackedLightmapCoords(access, pos); + ao[offset] = state.getAmbientOcclusionLightValue(); s[offset] = (brightness >> 0x14) & 0xF; b[offset] = (brightness >> 0x04) & 0xF; - ao[offset] = state.getAmbientOcclusionLightValue(); - fullCube[x][y][z] = state.isFullCube(); initialized[offset] = true; } diff --git a/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfoProvider.java b/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfoProvider.java index 9ad5a5c..1f6e2d1 100644 --- a/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfoProvider.java +++ b/src/main/java/pl/asie/foamfix/coremod/blockinfo/ChunkInfoProvider.java @@ -8,7 +8,7 @@ import java.util.WeakHashMap; public class ChunkInfoProvider { - private static final WeakHashMap infoMap = new WeakHashMap<>(); + private static final WeakHashMap infoMap = new WeakHashMap<>(); @Nullable public static ChunkInfo getChunkInfo(IBlockAccess access, BlockPos pos) { @@ -16,7 +16,7 @@ public static ChunkInfo getChunkInfo(IBlockAccess access, BlockPos pos) { ChunkInfo info = infoMap.get(access); if (info == null) { info = new ChunkInfo(new BlockPos(pos.getX() & (~15), pos.getY() & (~15), pos.getZ() & (~15))); - infoMap.put((ChunkCache) access, info); + infoMap.put(access, info); } return info; } else {