Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master—' into master—
Browse files Browse the repository at this point in the history
  • Loading branch information
Lithewings committed Aug 4, 2024
1 parent 5011f70 commit f2544a3
Show file tree
Hide file tree
Showing 30 changed files with 682 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.equilibrium.constant.MaxCount;
import com.equilibrium.util.PlayerMaxHealthHelper;
import com.equilibrium.util.PlayerMaxHungerHelper;
import com.equilibrium.util.WorldMoonPhasesSelector;
import com.equilibrium.util.WorldTimeHelper;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffectUtil;
import net.minecraft.entity.effect.StatusEffects;
Expand All @@ -21,6 +23,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.List;
import java.util.UUID;


Expand All @@ -31,18 +34,19 @@ public abstract class PlayerManagerMixin {

@Shadow @Final private MinecraftServer server;

@Shadow public abstract @Nullable ServerPlayerEntity getPlayer(UUID uuid);

@Shadow @Final private List<ServerPlayerEntity> players;

@Inject(method = "onPlayerConnect",at = @At(value = "TAIL"))
public void onPlayerConnect(ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, CallbackInfo ci) {
LOGGER.info("When finishing connect,the player xp level is "+player.experienceLevel);

LOGGER.info("When finishing connect,the player health level is "+player.getHealth());
//发送时间
WorldTimeHelper.setDay(this.players.getFirst().getWorld().getTimeOfDay());



if(player.experienceLevel>50)
MaxCount.vanillaMaxCount=true;
else
MaxCount.vanillaMaxCount=false;

int initializedMaxHealth = player.experienceLevel >=35 ? 20 : 6 +(int)(player.experienceLevel/5)*2;
PlayerMaxHealthHelper.setMaxHealthLevel(initializedMaxHealth);
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/com/equilibrium/mixin/render/WorldRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gl.ShaderProgram;
import net.minecraft.client.gl.VertexBuffer;
import net.minecraft.client.option.CloudRenderMode;
import net.minecraft.client.render.*;
import net.minecraft.client.render.chunk.ChunkBuilder;
import net.minecraft.client.util.math.MatrixStack;
Expand All @@ -16,6 +17,7 @@
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeEffects;
import org.joml.Matrix4f;
Expand Down Expand Up @@ -115,6 +117,20 @@ private boolean hasBlindnessOrDarknessMixin(Camera camera) {
? false
: livingEntity.hasStatusEffect(StatusEffects.BLINDNESS) || livingEntity.hasStatusEffect(StatusEffects.DARKNESS);
}
@Inject(method = "renderClouds(Lnet/minecraft/client/util/math/MatrixStack;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FDDD)V",at = @At(value = "HEAD"),cancellable = true)
public void renderClouds(MatrixStack matrices, Matrix4f matrix4f, Matrix4f matrix4f2, float tickDelta, double cameraX, double cameraY, double cameraZ, CallbackInfo ci) {
if(this.world.getRegistryKey()!= World.OVERWORLD)
ci.cancel();
}










@Inject(method = "renderSky(Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;FLnet/minecraft/client/render/Camera;ZLjava/lang/Runnable;)V",at = @At(value = "HEAD"),cancellable = true)
public void renderSky(Matrix4f matrix4f, Matrix4f projectionMatrix, float tickDelta, Camera camera, boolean thickFog, Runnable fogCallback, CallbackInfo ci) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.equilibrium.mixin.structure;

import net.minecraft.world.gen.chunk.placement.RandomSpreadStructurePlacement;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

@Mixin(RandomSpreadStructurePlacement.class)
public class RandomSpreadStructurePlacementMixin {
@Shadow
@Final
private int spacing = 256;
@Shadow
@Final
private int separation = 254;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.equilibrium.mixin.structure.village;

import com.equilibrium.util.WorldTimeHelper;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.server.world.ServerWorld;
Expand Down Expand Up @@ -48,15 +49,27 @@ private static boolean regEntryContains(@NotNull RegistryEntry<?> entry, String

@Inject(method = "generate(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/registry/entry/RegistryEntry;Lnet/minecraft/util/Identifier;ILnet/minecraft/util/math/BlockPos;Z)Z", at = @At("HEAD"), cancellable = true)
private static void generate(ServerWorld world, RegistryEntry<StructurePool> structurePool, Identifier id, int size, BlockPos pos, boolean keepJigsaws, CallbackInfoReturnable<Boolean> cir) {
if (regEntryContains(structurePool, "village")) {
cir.setReturnValue(false);
cir.cancel();
if(WorldTimeHelper.getDay()>=32){
// if (regEntryContains(structurePool, "village")) {
// cir.setReturnValue(false);
// cir.cancel();
// }
}else{
cir.setReturnValue(false);
cir.cancel();
}

}

@Inject(method = "generate(Lnet/minecraft/world/gen/structure/Structure$Context;Lnet/minecraft/registry/entry/RegistryEntry;Ljava/util/Optional;ILnet/minecraft/util/math/BlockPos;ZLjava/util/Optional;ILnet/minecraft/structure/pool/alias/StructurePoolAliasLookup;Lnet/minecraft/world/gen/structure/DimensionPadding;Lnet/minecraft/structure/StructureLiquidSettings;)Ljava/util/Optional;", at = @At("HEAD"), cancellable = true)
private static void generate(Structure.Context context, RegistryEntry<StructurePool> structurePool, Optional<Identifier> id, int size, BlockPos pos, boolean useExpansionHack, Optional<Heightmap.Type> projectStartToHeightmap, int maxDistanceFromCenter, StructurePoolAliasLookup aliasLookup, DimensionPadding dimensionPadding, StructureLiquidSettings liquidSettings, CallbackInfoReturnable<Optional<Structure.StructurePosition>> cir) {
if (regEntryContains(structurePool, "village")) {
if(WorldTimeHelper.getDay()>=32) {
// if (regEntryContains(structurePool, "village")) {
// cir.setReturnValue(Optional.empty());
// cir.cancel();
// }
}
else{
cir.setReturnValue(Optional.empty());
cir.cancel();
}
Expand All @@ -66,14 +79,17 @@ private static void generate(Structure.Context context, RegistryEntry<StructureP
private static class StructurePoolGeneratorMixin {
@Inject(method = "generatePiece", at = @At("HEAD"), cancellable = true)
void generatePiece(PoolStructurePiece piece, MutableObject<VoxelShape> pieceShape, int minY, boolean modifyBoundingBox, HeightLimitView world, NoiseConfig noiseConfig, StructurePoolAliasLookup aliasLookup, StructureLiquidSettings liquidSettings, CallbackInfo ci) {
if (piece == null) return;
StructurePoolElement element = piece.getPoolElement();
if (element == null) return;
StructurePoolElementType<?> type = element.getType();
if (type == null) return;
if (type.toString().contains("village")) {
if(WorldTimeHelper.getDay()>=32) {
// if (piece == null) return;
// StructurePoolElement element = piece.getPoolElement();
// if (element == null) return;
// StructurePoolElementType<?> type = element.getType();
// if (type == null) return;
// if (type.toString().contains("village")) {
// ci.cancel();
// }
}else
ci.cancel();
}
}
}

Expand Down
Loading

0 comments on commit f2544a3

Please sign in to comment.