Skip to content

Commit

Permalink
BiomeTweaker compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
sam-kirby committed Aug 23, 2019
1 parent 7d65a7d commit af278e6
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 0 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ dependencies {
compileOnly "2692:524:TofuCraftReload-0.0.2.1@jar"
compileOnly "2636:492:tropicraft-MC1.12.2-7.1.8.105@jar"
compileOnly "2724:738:gaiadimension-1.12.2-1.0.5@jar"
compileOnly "2572:722:BiomeTweaker-1.12.2-3.2.354@jar"
}

def travisBuildNumber = System.getenv("TRAVIS_BUILD_NUMBER")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.dimdev.jeid.mixin.modsupport.biometweaker;

import me.superckl.biometweaker.server.command.CommandSetBiome;
import net.minecraft.command.ICommandSender;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.text.Style;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import org.dimdev.jeid.INewChunk;
import org.dimdev.jeid.Utils;
import org.dimdev.jeid.network.BiomeArrayMessage;
import org.dimdev.jeid.network.BiomeChangeMessage;
import org.dimdev.jeid.network.MessageManager;
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.LocalCapture;

import java.util.Arrays;

@Mixin(CommandSetBiome.class)
public class MixinCommandSetBiome {
@Inject(method = "func_184881_a", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/chunk/Chunk;func_76605_m()[B", remap = false), locals = LocalCapture.CAPTURE_FAILHARD, remap = false)
private void setBiomeArrayElement(MinecraftServer server, ICommandSender sender, String args[], CallbackInfo ci, BlockPos coord, World world, Biome gen, Integer i, int id, boolean blocks, int count, int x, int z, int realX, int realZ, Chunk chunk) {
Utils.LOGGER.info("setting biome at {}, {}", x, z);
((INewChunk) chunk).getIntBiomeArray()[(z & 0xF) << 4 | x & 0xF] = id;
MessageManager.CHANNEL.sendToAllTracking(new BiomeChangeMessage(x, z, id), new NetworkRegistry.TargetPoint(world.provider.getDimension(), coord.getX(), coord.getY(), coord.getZ(), 256));
}

@Inject(method = "func_184881_a", at = @At(value = "INVOKE", target = "Ljava/util/Arrays;fill([BB)V"), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD, remap = false)
private void setBiomeArray(MinecraftServer server, ICommandSender sender, String args[], CallbackInfo ci, BlockPos coord, World world, Biome gen, Integer i, int id, boolean blocks, int count, byte biomeArray[]) {
final int[] intBiomeArray = new int[256];
Arrays.fill(intBiomeArray, id);
ChunkPos chunkPos = new ChunkPos(coord);

for (int x = chunkPos.x - i; x <= chunkPos.x + i; x++) {
for (int z = chunkPos.z - i; z <= chunkPos.z + i; z++) {
((INewChunk) world.getChunk(x, z)).setIntBiomeArray(Arrays.copyOf(intBiomeArray, intBiomeArray.length));
MessageManager.CHANNEL.sendToAllTracking(new BiomeArrayMessage(x, z, Arrays.copyOf(intBiomeArray, intBiomeArray.length)), new NetworkRegistry.TargetPoint(world.provider.getDimension(), coord.getX(), coord.getY(), coord.getZ(), 256));
count++;
}
}

sender.sendMessage(new TextComponentTranslation("biometweaker.msg.setbiome.chunksuccess.text", count, gen.getBiomeName()).setStyle(new Style().setColor(TextFormatting.GOLD)));

ci.cancel();
}
}
1 change: 1 addition & 0 deletions src/main/resources/mixins.jeid.modsupport.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"advancedrocketry.MixinPacketBiomeIDChange",
"biomesoplenty.MixinBOPCommand",
"biomesoplenty.MixinModBiomes",
"biometweaker.MixinCommandSetBiome",
"bookshelf.MixinWorldUtils",
"creepingnether.MixinCorruptorAbstract",
"cyclopscore.MixinWorldHelpers",
Expand Down

0 comments on commit af278e6

Please sign in to comment.