Use hashed seed for sky generation (seed dependent, available in both internal server and multiplayer)

This commit is contained in:
KosmX 2022-12-16 17:28:17 +01:00
parent 1276ead89b
commit 6f62d57ab2
No known key found for this signature in database
GPG key ID: E49D7729B4AD2A98
5 changed files with 49 additions and 15 deletions

View file

@ -0,0 +1,32 @@
package codes.ztereohype.nicerskies.mixin;
import codes.ztereohype.nicerskies.IClientLevelAccessor;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceKey;
import org.spongepowered.asm.mixin.Mixin;
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.CallbackInfo;
import java.util.function.Supplier;
@Mixin(ClientLevel.class)
public class ClientLevelMixin implements IClientLevelAccessor {
@Unique
private long hashedSeed;
@Inject(method = "<init>", at = @At("TAIL"))
private void generateSkies(ClientPacketListener clientPacketListener, ClientLevel.ClientLevelData clientLevelData, ResourceKey resourceKey, Holder holder, int i, int j, Supplier supplier, LevelRenderer levelRenderer, boolean bl, long hashedSeed, CallbackInfo ci) {
this.hashedSeed = hashedSeed;
}
@Override
public long nicerSkies_getHashedSeed() {
return hashedSeed;
}
}