diff --git a/build.gradle b/build.gradle index fb84874..a8ba959 100644 --- a/build.gradle +++ b/build.gradle @@ -65,11 +65,11 @@ modrinth { projectId = "fLCmgUPa" versionNumber = "${project.mod_version}" - versionName = "Phosphor-Legacy v${project.mod_version} (1.12.2)" - versionType = "release" + versionName = "Phosphor-Legacy v${project.mod_version} (1.8.9)" + versionType = "beta" changelog = "Initial release" uploadFile = remapJar - gameVersions = ["1.12.2"] + gameVersions = ["1.8.9"] loaders = ["fabric"] } diff --git a/gradle.properties b/gradle.properties index dbbe1cb..c77d52f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # https://grayray75.github.io/LegacyFabric-Versions/ -minecraft_version=1.12.2 +minecraft_version=1.8.9 yarn_mappings_build=524 loader_version=0.14.22 diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/ChunkSectionAccessor.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/ChunkSectionAccessor.java deleted file mode 100644 index 4d49e39..0000000 --- a/src/main/java/me/jellysquid/mods/phosphor/mixins/ChunkSectionAccessor.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.jellysquid.mods.phosphor.mixins; - -import net.minecraft.world.chunk.ChunkSection; -import net.minecraft.world.chunk.palette.PaletteContainer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(ChunkSection.class) -public interface ChunkSectionAccessor { - @Accessor("field_12914") - PaletteContainer getData(); -} diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/PaletteContainerAccessor.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/PaletteContainerAccessor.java deleted file mode 100644 index 67f0f30..0000000 --- a/src/main/java/me/jellysquid/mods/phosphor/mixins/PaletteContainerAccessor.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.jellysquid.mods.phosphor.mixins; - -import net.minecraft.world.chunk.palette.Palette; -import net.minecraft.world.chunk.palette.PaletteContainer; -import net.minecraft.world.chunk.palette.PaletteData; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(PaletteContainer.class) -public interface PaletteContainerAccessor { - @Accessor("paletteData") - PaletteData getStorage(); - - @Accessor("palette") - Palette getPalette(); -} diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkDataS2CPacketMixin.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkDataS2CPacketMixin.java index 5676235..a693be3 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkDataS2CPacketMixin.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkDataS2CPacketMixin.java @@ -6,19 +6,19 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ChunkDataS2CPacket.class) public abstract class ChunkDataS2CPacketMixin { /** - * Injects a callback into SPacketChunkData#calculateChunkSize(Chunk, booolean, int) to force light updates to be - * processed before creating the client payload. We use this method rather than the constructor as it is not valid - * to inject elsewhere other than the RETURN of a ctor, which is too late for our needs. + * Injects a callback into the constructor of ChunkDataS2CPacketMixin to force light updates to be + * processed before creating the client payload. * * @author JellySquid */ - @Inject(method = "method_12656", at = @At("HEAD")) - private void onCalculateChunkSize(Chunk chunkIn, boolean hasSkyLight, int changedSectionFilter, CallbackInfoReturnable cir) { - ((ILightingEngineProvider) chunkIn).getLightingEngine().processLightUpdates(); + @Inject(method = "createExtraData", at = @At("HEAD")) + private static void onCalculateChunkSize(Chunk chunk, boolean load, boolean notNether, int i, CallbackInfoReturnable cir) { + ((ILightingEngineProvider) chunk).getLightingEngine().processLightUpdates(); } } diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkMixin.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkMixin.java index 14d1710..76318bb 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkMixin.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ChunkMixin.java @@ -140,7 +140,7 @@ private void method_3917(int x, int y, int z) { if (j != i) { this.heightmap[z << 4 | x] = j; - if (this.world.dimension.isOverworld()) { + if (!this.world.dimension.isNether()) { LightingHooks.relightSkylightColumn(this.world, (Chunk) (Object) this, x, z, i, j); } @@ -335,7 +335,7 @@ public int getCachedLightFor(LightType lightType, BlockPos pos) { ChunkSection section = this.chunkSections[j >> 4]; - if (section == Chunk.EMPTY) { + if (section == null) { if (this.hasDirectSunlight(pos)) { return lightType.defaultValue; } @@ -346,8 +346,12 @@ public int getCachedLightFor(LightType lightType, BlockPos pos) { else if (lightType == LightType.SKY) { // In Minecraft there is no dimension.hasSkyLight() function, I guess it was added by forge // Because this checks if the dimension can see the sky, I guess it looks for the nether and end? + // + // 1.8.9 Note: isOverworld() doesn't exist here so i'm using !isNether() + // It should be noted that isNether() is named wrong it should be hasNoSky (MCP) or so + // //if (!this.world.dimension.hasSkyLight()) { - if (!this.world.dimension.isOverworld()) { + if (this.world.dimension.isNether()) { return 0; } else { diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ClientChunkProviderAccessor.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ClientChunkProviderAccessor.java new file mode 100644 index 0000000..de6c627 --- /dev/null +++ b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ClientChunkProviderAccessor.java @@ -0,0 +1,13 @@ +package me.jellysquid.mods.phosphor.mixins.common; + +import net.minecraft.util.collection.LongObjectStorage; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.ClientChunkProvider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ClientChunkProvider.class) +public interface ClientChunkProviderAccessor { + @Accessor("chunkStorage") + LongObjectStorage getChunkStorage(); +} diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderAccessor.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderAccessor.java new file mode 100644 index 0000000..e65367c --- /dev/null +++ b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderAccessor.java @@ -0,0 +1,13 @@ +package me.jellysquid.mods.phosphor.mixins.common; + +import net.minecraft.util.collection.LongObjectStorage; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.ServerChunkProvider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ServerChunkProvider.class) +public interface ServerChunkProviderAccessor { + @Accessor("chunkMap") + LongObjectStorage getChunkStorage(); +} diff --git a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderMixin.java b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderMixin.java index 7264507..2e0af6c 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderMixin.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mixins/common/ServerChunkProviderMixin.java @@ -2,10 +2,14 @@ import me.jellysquid.mods.phosphor.api.ILightingEngineProvider; import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.ProgressListener; +import net.minecraft.util.collection.LongObjectStorage; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.ServerChunkProvider; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -15,11 +19,9 @@ @Mixin(ServerChunkProvider.class) public abstract class ServerChunkProviderMixin { @Shadow - @Final private ServerWorld world; @Shadow - @Final private Set chunksToUnload; /** @@ -27,8 +29,8 @@ public abstract class ServerChunkProviderMixin { * * @author JellySquid */ - @Inject(method = "method_12776", at = @At("HEAD")) - private void onSaveChunks(boolean all, CallbackInfoReturnable cir) { + @Inject(method = "saveChunks", at = @At("HEAD")) + private void onSaveChunks(boolean saveEntities, ProgressListener progressListener, CallbackInfoReturnable cir) { ((ILightingEngineProvider) this.world).getLightingEngine().processLightUpdates(); } diff --git a/src/main/java/me/jellysquid/mods/phosphor/mod/world/ChunkHelper.java b/src/main/java/me/jellysquid/mods/phosphor/mod/world/ChunkHelper.java new file mode 100644 index 0000000..da4d7da --- /dev/null +++ b/src/main/java/me/jellysquid/mods/phosphor/mod/world/ChunkHelper.java @@ -0,0 +1,26 @@ +package me.jellysquid.mods.phosphor.mod.world; + +import me.jellysquid.mods.phosphor.mixins.common.ClientChunkProviderAccessor; +import me.jellysquid.mods.phosphor.mixins.common.ServerChunkProviderAccessor; +import net.minecraft.util.collection.LongObjectStorage; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.ChunkProvider; +import net.minecraft.world.chunk.ClientChunkProvider; +import net.minecraft.world.chunk.ServerChunkProvider; + +public class ChunkHelper { + public static Chunk getLoadedChunk(ChunkProvider chunkProvider, int x, int z) { + if (chunkProvider instanceof ServerChunkProvider) { + LongObjectStorage chunkStorage = ((ServerChunkProviderAccessor) chunkProvider).getChunkStorage(); + return chunkStorage.get(ChunkPos.getIdFromCoords(x, z)); + } + if (chunkProvider instanceof ClientChunkProvider) { + LongObjectStorage chunkStorage = ((ClientChunkProviderAccessor) chunkProvider).getChunkStorage(); + return chunkStorage.get(ChunkPos.getIdFromCoords(x, z)); + } + + // Fallback for other providers, hopefully this doesn't break... + return chunkProvider.getChunk(x, z); + } +} diff --git a/src/main/java/me/jellysquid/mods/phosphor/mod/world/WorldChunkSlice.java b/src/main/java/me/jellysquid/mods/phosphor/mod/world/WorldChunkSlice.java index c8fdd1c..8f0089e 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mod/world/WorldChunkSlice.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mod/world/WorldChunkSlice.java @@ -17,7 +17,7 @@ public WorldChunkSlice(World world, int x, int z) { for (int xDiff = -radius; xDiff <= radius; xDiff++) { for (int zDiff = -radius; zDiff <= radius; zDiff++) { - this.chunks[((xDiff + radius) * DIAMETER) + (zDiff + radius)] = world.getChunkProvider().getLoadedChunk(x + xDiff, z + zDiff); + this.chunks[((xDiff + radius) * DIAMETER) + (zDiff + radius)] = ChunkHelper.getLoadedChunk(world.getChunkProvider(),x + xDiff, z + zDiff); } } diff --git a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngine.java b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngine.java index 09e09df..475ce6b 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngine.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngine.java @@ -5,6 +5,7 @@ import me.jellysquid.mods.phosphor.mixins.DirectionAccessor; import me.jellysquid.mods.phosphor.mod.PhosphorMod; import me.jellysquid.mods.phosphor.mod.collections.PooledLongQueue; +import me.jellysquid.mods.phosphor.mod.world.ChunkHelper; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; @@ -425,7 +426,7 @@ private static int getCachedLightFor(Chunk chunk, ChunkSection section, BlockPos int j = pos.getY(); int k = pos.getZ() & 15; - if (section == Chunk.EMPTY) { + if (section == null) { if (lightType == LightType.SKY && chunk.hasDirectSunlight(pos)) { return lightType.defaultValue; } @@ -434,7 +435,7 @@ private static int getCachedLightFor(Chunk chunk, ChunkSection section, BlockPos } } else if (lightType == LightType.SKY) { - if (!chunk.getWorld().dimension.isOverworld()) { + if (chunk.getWorld().dimension.isNether()) { return 0; } else { @@ -596,15 +597,15 @@ private int getCursorLuminosity(final BlockState state, final LightType lightTyp } } - return MathHelper.clamp(state.getLuminance(), 0, MAX_LIGHT); + return MathHelper.clamp(state.getBlock().getLightLevel(), 0, MAX_LIGHT); } private int getPosOpacity(final BlockPos pos, final BlockState state) { - return MathHelper.clamp(state.getOpacity(), 1, MAX_LIGHT); + return MathHelper.clamp(state.getBlock().getOpacity(), 1, MAX_LIGHT); } private Chunk getChunk(final BlockPos pos) { - return this.world.getChunkProvider().getLoadedChunk(pos.getX() >> 4, pos.getZ() >> 4); + return ChunkHelper.getLoadedChunk(this.world.getChunkProvider(),pos.getX() >> 4, pos.getZ() >> 4); } private static class NeighborInfo { diff --git a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngineHelpers.java b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngineHelpers.java index e930a7a..277b166 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngineHelpers.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingEngineHelpers.java @@ -1,7 +1,6 @@ package me.jellysquid.mods.phosphor.mod.world.lighting; -import me.jellysquid.mods.phosphor.mixins.ChunkSectionAccessor; -import me.jellysquid.mods.phosphor.mixins.PaletteContainerAccessor; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.util.math.BlockPos; @@ -21,15 +20,11 @@ public static BlockState posToState(final BlockPos pos, final ChunkSection secti final int y = pos.getY(); final int z = pos.getZ(); - if (section != Chunk.EMPTY) { - int i = ((PaletteContainerAccessor) ((ChunkSectionAccessor) section).getData()).getStorage().get((y & 15) << 8 | (z & 15) << 4 | x & 15); + if (section != null) { + BlockState state = Block.BLOCK_STATES.fromId(section.getBlockStates()[(y & 15) << 8 | (z & 15) << 4 | x & 15]); - if (i != 0) { - BlockState state = ((PaletteContainerAccessor) ((ChunkSectionAccessor) section).getData()).getPalette().getStateForId(i); - - if (state != null) { - return state; - } + if (state != null) { + return state; } } diff --git a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingHooks.java b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingHooks.java index c81171d..536d0f4 100644 --- a/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingHooks.java +++ b/src/main/java/me/jellysquid/mods/phosphor/mod/world/lighting/LightingHooks.java @@ -4,10 +4,10 @@ import me.jellysquid.mods.phosphor.api.IChunkLightingData; import me.jellysquid.mods.phosphor.api.ILightingEngine; import me.jellysquid.mods.phosphor.api.ILightingEngineProvider; -import me.jellysquid.mods.phosphor.mixins.ChunkSectionAccessor; import me.jellysquid.mods.phosphor.mixins.DirectionAccessor; -import me.jellysquid.mods.phosphor.mixins.PaletteContainerAccessor; import me.jellysquid.mods.phosphor.mod.PhosphorMod; +import me.jellysquid.mods.phosphor.mod.world.ChunkHelper; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtList; @@ -38,14 +38,14 @@ public static void relightSkylightColumn(final World world, final Chunk chunk, f scheduleRelightChecksForColumn(world, LightType.SKY, xBase, zBase, yMin, yMax); - if (sections[yMin >> 4] == Chunk.EMPTY && yMin > 0) { + if (sections[yMin >> 4] == null && yMin > 0) { world.method_8539(LightType.SKY, new BlockPos(xBase, yMin - 1, zBase)); } short emptySections = 0; for (int sec = yMax >> 4; sec >= yMin >> 4; --sec) { - if (sections[sec] == Chunk.EMPTY) { + if (sections[sec] == null) { emptySections |= 1 << sec; } } @@ -57,7 +57,7 @@ public static void relightSkylightColumn(final World world, final Chunk chunk, f final boolean neighborColumnExists = (((x + xOffset) | (z + zOffset)) & 16) == 0 //Checks whether the position is at the specified border (the 16 bit is set for both 15+1 and 0-1) - || world.getChunkProvider().getLoadedChunk(chunk.chunkX + xOffset, chunk.chunkZ + zOffset) != null; + || ChunkHelper.getLoadedChunk(world.getChunkProvider(),chunk.chunkX + xOffset, chunk.chunkZ + zOffset) != null; if (neighborColumnExists) { for (int sec = yMax >> 4; sec >= yMin >> 4; --sec) { @@ -124,7 +124,7 @@ public static void scheduleRelightChecksForChunkBoundaries(final World world, fi final int xOffset = dir.getOffsetX(); final int zOffset = dir.getOffsetZ(); - final Chunk nChunk = world.getChunkProvider().getLoadedChunk(chunk.chunkX + xOffset, chunk.chunkX + zOffset); + final Chunk nChunk = ChunkHelper.getLoadedChunk(world.getChunkProvider(), chunk.chunkX + xOffset, chunk.chunkX + zOffset); if (nChunk == null) { continue; @@ -183,7 +183,7 @@ private static void scheduleRelightChecksForBoundary(final World world, final Ch } if (nChunk == null) { - nChunk = world.getChunkProvider().getLoadedChunk(chunk.chunkX + xOffset, chunk.chunkZ + zOffset); + nChunk = ChunkHelper.getLoadedChunk(world.getChunkProvider(),chunk.chunkX + xOffset, chunk.chunkZ + zOffset); if (nChunk == null) { return; @@ -191,7 +191,7 @@ private static void scheduleRelightChecksForBoundary(final World world, final Ch } if (sChunk == null) { - sChunk = world.getChunkProvider().getLoadedChunk(chunk.chunkX + (zOffset != 0 ? axisDir.offset() : 0), chunk.chunkZ + (xOffset != 0 ? axisDir.offset() : 0)); + sChunk = ChunkHelper.getLoadedChunk(world.getChunkProvider(),chunk.chunkX + (zOffset != 0 ? axisDir.offset() : 0), chunk.chunkZ + (xOffset != 0 ? axisDir.offset() : 0)); if (sChunk == null) { return; //Cancel, since the checks in the corner columns require the corner column of sChunk @@ -296,7 +296,7 @@ public static void initChunkLighting(final Chunk chunk, final World world) { final int xBase = chunk.chunkX << 4; final int zBase = chunk.chunkZ << 4; - final BlockPos.Pooled pos = BlockPos.Pooled.method_12571(xBase, 0, zBase); + final BlockPos.Mutable pos = new BlockPos.Mutable(xBase, 0, zBase); if (world.isRegionLoaded(pos.add(-16, 0, -16), pos.add(31, 255, 31), false)) { final ChunkSection[] sections = chunk.getBlockStorage(); @@ -304,7 +304,7 @@ public static void initChunkLighting(final Chunk chunk, final World world) { for (int j = 0; j < sections.length; ++j) { final ChunkSection section = sections[j]; - if (section == Chunk.EMPTY) { + if (section == null) { continue; } @@ -313,13 +313,13 @@ public static void initChunkLighting(final Chunk chunk, final World world) { for (int y = 0; y < 16; y++) { for (int z = 0; z < 16; z++) { for (int x = 0; x < 16; x++) { - int key = ((PaletteContainerAccessor) ((ChunkSectionAccessor) section).getData()).getStorage().get(y << 8 | z << 4 | x); + int key = section.getBlockStates()[y << 8 | z << 4 | x]; if (key != 0) { - BlockState state = ((PaletteContainerAccessor) ((ChunkSectionAccessor) section).getData()).getPalette().getStateForId(key); + BlockState state = Block.BLOCK_STATES.fromId(key); if (state != null) { - int light = state.getLuminance(); + int light = state.getBlock().getLightLevel(); if (light > 0) { pos.setPosition(xBase + x, yBase + y, zBase + z); @@ -333,14 +333,12 @@ public static void initChunkLighting(final Chunk chunk, final World world) { } } - if (world.dimension.isOverworld()) { + if (!world.dimension.isNether()) { ((IChunkLightingData) chunk).setSkylightUpdatedPublic(); } ((IChunkLightingData) chunk).setLightInitialized(true); } - - pos.method_12576(); } public static void checkChunkLighting(final Chunk chunk, final World world) { @@ -351,7 +349,7 @@ public static void checkChunkLighting(final Chunk chunk, final World world) { for (int x = -1; x <= 1; ++x) { for (int z = -1; z <= 1; ++z) { if (x != 0 || z != 0) { - Chunk nChunk = world.getChunkProvider().getLoadedChunk(chunk.chunkX + x, chunk.chunkZ + z); + Chunk nChunk = ChunkHelper.getLoadedChunk(world.getChunkProvider(),chunk.chunkX + x, chunk.chunkZ + z); if (nChunk == null || !((IChunkLightingData) nChunk).isLightInitialized()) { return; @@ -364,7 +362,7 @@ public static void checkChunkLighting(final Chunk chunk, final World world) { } public static void initSkylightForSection(final World world, final Chunk chunk, final ChunkSection section) { - if (world.dimension.isOverworld()) { + if (!world.dimension.isNether()) { for (int x = 0; x < 16; ++x) { for (int z = 0; z < 16; ++z) { if (chunk.getHighestBlockY(x, z) <= section.getYOffset()) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 1ce3603..0105ad3 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -26,6 +26,6 @@ ], "depends": { "fabricloader": ">=0.14.0", - "minecraft": "1.12.2" + "minecraft": "1.8.9" } } diff --git a/src/main/resources/phosphor.mixins.json b/src/main/resources/phosphor.mixins.json index 78715c7..6c255b1 100644 --- a/src/main/resources/phosphor.mixins.json +++ b/src/main/resources/phosphor.mixins.json @@ -4,19 +4,19 @@ "package": "me.jellysquid.mods.phosphor.mixins", "compatibilityLevel": "JAVA_8", "mixins": [ - "ChunkSectionAccessor", "DirectionAccessor", - "PaletteContainerAccessor", - "common.ThreadedAnvilChunkStorageMixin", + "common.ChunkDataS2CPacketMixin", "common.ChunkMixin", "common.ChunkMixin$Vanilla", - "common.ServerChunkProviderMixin", "common.ChunkSectionMixin", - "common.ChunkDataS2CPacketMixin", + "common.ServerChunkProviderAccessor", + "common.ServerChunkProviderMixin", + "common.ThreadedAnvilChunkStorageMixin", "common.WorldMixin" ], "client": [ - "client.MinecraftClientMixin" + "client.MinecraftClientMixin", + "common.ClientChunkProviderAccessor" ], "injectors": { "defaultRequire": 1