Skip to content

Commit

Permalink
Slightly more documentation, a couple minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
gudenau committed Jan 26, 2020
1 parent c64d1e6 commit b10b1ac
Show file tree
Hide file tree
Showing 32 changed files with 151 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Effectivly nop out a height check
* */
@Mixin(ChorusFlowerBlock.class)
public abstract class ChorusFlowerBlockMixin extends Block{
private ChorusFlowerBlockMixin(Settings settings){
Expand All @@ -17,6 +21,6 @@ private ChorusFlowerBlockMixin(Settings settings){
constant = @Constant(intValue = 256)
)
private static int scheduledTick(int original){
return 512;
return Integer.MAX_VALUE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
* Changes:
* - Throw an exception on old onChunkDeltaUpdate
* - Add new onChunkDeltaUpdate
* - Throw an exception on old onLightUpdate
* - Add new onLightUpdate
* */
@Environment(EnvType.CLIENT)
@Mixin(ClientPlayNetworkHandler.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

/**
* Changes:
* - Prevent use by throwing exceptions
* */
@Mixin(LightUpdateS2CPacket.class)
public abstract class LightUpdateS2CPacketMixin implements Packet<ClientPlayPacketListener>{
// @Inject(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

/**
* Changes:
* - Change height from 16 chunks to 32
* - Change height from 16 chunks to 16-32 depending on view distance
* */
@Environment(EnvType.CLIENT)
@Mixin(BuiltChunkStorage.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Allow afterSpawn to seek higher than 256 blocks
* */
@Mixin(Entity.class)
public abstract class EntityMixin implements Nameable, CommandOutput{
@Environment(EnvType.CLIENT)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Effectivly nop out height check
* */
@Mixin(FallingBlockEntity.class)
public abstract class FallingBlockEntityMixin extends Entity{
private FallingBlockEntityMixin(EntityType<?> type, World world){
Expand All @@ -19,6 +23,6 @@ private FallingBlockEntityMixin(EntityType<?> type, World world){
constant = @Constant(intValue = 256)
)
private static int tick(int original){
return 512;
return Integer.MAX_VALUE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,17 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Effectivly nop out height check
* */
@Mixin(LavaFluid.class)
public abstract class LavaFluidMixin extends BaseFluid{
@ModifyConstant(
method = "method_15817",
constant = @Constant(intValue = 256)
)
private static int method_15817(int original){
return 512;
return Integer.MAX_VALUE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@

import static net.minecraft.network.NetworkSide.CLIENTBOUND;

/**
* Changes:
* - Add in a hack to replace packets
* - Replace ChunkDeltaUpdateS2CPacket
* - Replace LightUpdateS2CPacket
* */
@Mixin(NetworkState.class)
public abstract class NetworkStateMixin{
@Inject(
Expand Down Expand Up @@ -83,25 +89,4 @@ private static <T> T sneakyGet(Object instance, Class<T> type){
}
throw new RuntimeException();
}

/*
@ModifyConstant(
method = "<clinit>",
constant = @Constant(classValue = ChunkDeltaUpdateS2CPacket.class)
)
private static Class<?> init(Class<?> original){
return LargeChunkDeltaUpdateS2CPacket.class;
}
@ModifyArg(
method = "<clinit>",
at = @At(
target = "Lnet/minecraft/network/NetworkState$PacketHandler;register(Ljava/lang/Class;Ljava/util/function/Supplier;)Lnet/minecraft/network/NetworkState$PacketHandler;"
)
)
private Supplier<?> init(Supplier<?> original){
return ChunkDeltaUpdateS2CPacket::new;
}
*/

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Allow player to respawn up to a height of 512, up from 256
* */
@Mixin(PlayerManager.class)
public abstract class PlayerManagerMixin{
@ModifyConstant(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Allow players to be spread up to 513 blocks (up from 257)
* */
@Mixin(targets = "net/minecraft/server/command/SpreadPlayersCommand$Pile")
public abstract class SpreadPlayersCommand$PileMixin{
@ModifyConstant(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public ServerPropertiesHandlerMixin(Properties properties){
method = "<init>",
constant = @Constant(intValue = 256)
)
private static int constructor(int original){
private static int init(int original){
return 512;
}
}
Original file line number Diff line number Diff line change
@@ -1,39 +1,18 @@
package net.gudenau.minecraft.tallworlds.mixin.server.world;

import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.objects.ObjectIterator;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import net.gudenau.minecraft.tallworlds.fixes.network.LargeLightUpdateS2CPacket;
import net.minecraft.client.network.DebugRendererInfoManager;
import net.minecraft.client.network.packet.ChunkDataS2CPacket;
import net.minecraft.client.network.packet.EntityAttachS2CPacket;
import net.minecraft.client.network.packet.EntityPassengersSetS2CPacket;
import net.minecraft.client.network.packet.LightUpdateS2CPacket;
import net.minecraft.entity.Entity;
import net.minecraft.entity.mob.MobEntity;
import net.minecraft.network.Packet;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ChunkHolder;
import net.minecraft.server.world.ServerLightingProvider;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.server.world.ThreadedAnvilChunkStorage;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.chunk.WorldChunk;
import net.minecraft.world.chunk.light.LightingProvider;
import net.minecraft.world.storage.VersionedChunkStorage;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.Redirect;

/**
Expand All @@ -42,10 +21,6 @@
* */
@Mixin(ThreadedAnvilChunkStorage.class)
public abstract class ThreadedAnvilChunkStorageMixin extends VersionedChunkStorage implements ChunkHolder.PlayersWatchingChunkProvider{
//@Shadow @Final private ServerWorld world;
//@Shadow @Final private Int2ObjectMap<ThreadedAnvilChunkStorage.EntityTracker> entityTrackers;
//@Shadow @Final private ServerLightingProvider serverLightingProvider;

private ThreadedAnvilChunkStorageMixin(File file, DataFixer dataFixer){
super(file, dataFixer);
}
Expand All @@ -68,48 +43,4 @@ private LightUpdateS2CPacket sendChunkDataPackets(ChunkPos pos, LightingProvider
private static int sendChunkDataPackets(int original){
return 0xFFFF_FFFF;
}

/* *
* @author gudenau
* @reason int -> long
* /
@Overwrite
private void sendChunkDataPackets(ServerPlayerEntity player, Packet<?>[] packets, WorldChunk chunk){
if(packets[0] == null){
packets[0] = new ChunkDataS2CPacket(chunk, 0xFFFF_FFFF);
packets[1] = new LargeLightUpdateS2CPacket(chunk.getPos(), serverLightingProvider);
}
player.sendInitialChunkPackets(chunk.getPos(), packets[0], packets[1]);
DebugRendererInfoManager.method_19775(world, chunk.getPos());
List<MobEntity> list = Lists.newArrayList();
List<Entity> list2 = Lists.newArrayList();
for(ThreadedAnvilChunkStorage.EntityTracker entityTracker : entityTrackers.values()){
Entity entity = entityTracker.entity;
if(entity != player && entity.chunkX == chunk.getPos().x && entity.chunkZ == chunk.getPos().z){
entityTracker.updateCameraPosition(player);
if(entity instanceof MobEntity && ((MobEntity)entity).getHoldingEntity() != null){
list.add((MobEntity)entity);
}
if(!entity.getPassengerList().isEmpty()){
list2.add(entity);
}
}
}
if (!list.isEmpty()) {
for(MobEntity mob : list) {
player.networkHandler.sendPacket(new EntityAttachS2CPacket(mob, mob.getHoldingEntity()));
}
}
if (!list2.isEmpty()) {
for(Entity entity : list2) {
player.networkHandler.sendPacket(new EntityPassengersSetS2CPacket(entity));
}
}
}
*/
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,37 @@
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;

/**
* Changes:
* - Read and write BlockPos with ints instead of a long
* */
@Mixin(PacketByteBuf.class)
public abstract class PacketByteBufMixin extends ByteBuf{
@Shadow public abstract int readVarInt();
@Shadow public abstract PacketByteBuf writeVarInt(int value);

/* * Disabled for now.
/**
* @author gudenau
* @reason Kill the longs!
* /
*/
@Overwrite
public BlockPos readBlockPos() {
return new BlockPos(
readVarInt(),
readVarInt(),
readVarInt()
);
}*/
}

/* * Disabled for now.
/**
* @author gudenau
* @reason Kill the longs!
* /
*/
@Overwrite
public PacketByteBuf writeBlockPos(BlockPos blockPos) {
writeVarInt(blockPos.getX());
writeVarInt(blockPos.getY());
writeVarInt(blockPos.getZ());
return (PacketByteBuf)(Object)this;
}
*/
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package net.gudenau.minecraft.tallworlds.mixin.util.crash;

import net.minecraft.util.crash.CrashReport;
import net.minecraft.util.crash.CrashReportSection;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(CrashReport.class)
public abstract class CrashReportMixin{
@Shadow @Final private CrashReportSection systemDetailsSection;

@Inject(
method = "fillSystemDetails",
at = @At("HEAD")
)
private void fillSystemDetails(CallbackInfo callbackInfo){
systemDetailsSection.add("Tall Worlds Disclaimer", "This instance has TallWorlds present, this is a highly invasive mod and crashes are expected (especially when combined with other mods).");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

/**
* Changes:
* - (Disabled) Throw a fit on long calls.
* */
@Mixin(BlockPos.class)
public abstract class BlockPosMixin extends Vec3i implements DynamicSerializable{
private BlockPosMixin(int x, int y, int z){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;

/**
* Changes:
* - Allow vec lookups without using BlockPos long methods
* */
@Mixin(Direction.class)
public abstract class DirectionMixin implements StringIdentifiable{
@Shadow @Final private static Long2ObjectMap<Direction> VECTOR_TO_DIRECTION;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;

/**
* Changes:
* - Change height to 512 from 256
* */
@Mixin(BlockView.class)
public interface BlockViewMixin{
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,25 @@
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

/**
* Changes:
* - Effectively nop out height checks on snow and ice
* */
@Mixin(Biome.class)
public abstract class BiomeMixin{
@ModifyConstant(
method = "canSetSnow(Lnet/minecraft/world/WorldView;Lnet/minecraft/util/math/BlockPos;Z)Z",
constant = @Constant(intValue = 256)
)
private static int canSetSnow(int original){
return 512;
return Integer.MAX_VALUE;
}

@ModifyConstant(
method = "canSetIce",
constant = @Constant(intValue = 256)
)
private static int canSetIce(int original){
return 512;
return Integer.MAX_VALUE;
}
}
Loading

0 comments on commit b10b1ac

Please sign in to comment.