buildscript {
repositories {
jcenter()
- maven { url 'https://www.dimdev.org/maven/' }
maven { url 'https://repo.spongepowered.org/maven' }
maven { url 'https://plugins.gradle.org/m2/' }
+ maven { url 'https://jitpack.io' }
+ maven { url 'https://files.minecraftforge.net/maven' }
}
dependencies {
- classpath 'org.dimdev:ForgeGradle:2.3-SNAPSHOT'
+ classpath "com.github.Irtimaled:ForgeGradle:jitpack-SNAPSHOT"
classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'maven-publish'
-def mcVersion = '1.13'
+def mcVersion = '1.13.1'
group 'com.irtimaled'
version "1.0.4-beta3-$mcVersion"
archivesBaseName = 'BBOutlineReloaded'
repositories {
mavenCentral()
maven { url 'https://libraries.minecraft.net/' }
- maven { url 'https://www.dimdev.org/maven/' }
maven { url 'https://repo.spongepowered.org/maven/' }
+ maven { url 'https://jitpack.io' }
}
dependencies {
minecraft {
version = mcVersion
- mappings = 'snapshot_20180908'
+ mappings = 'snapshot_20181106'
runDir = 'run'
tweakClass = 'com.irtimaled.bbor.launch.ClientTweaker'
makeObfSourceJar = false
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.NetworkManager;
-import net.minecraft.world.dimension.DimensionType;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
PlayerData.setPlayerPosition(partialTicks, entityPlayer);
if (this.active) {
- renderer.render(DimensionType.getById(entityPlayer.dimension), outerBoxOnly);
+ renderer.render(entityPlayer.dimension, outerBoxOnly);
}
}
if (nbt == null)
return;
- NBTTagCompound data = nbt.getCompoundTag("Data");
+ NBTTagCompound data = nbt.getCompound("Data");
long seed = data.getLong("RandomSeed");
- int spawnX = data.getInteger("SpawnX");
- int spawnZ = data.getInteger("SpawnZ");
+ int spawnX = data.getInt("SpawnX");
+ int spawnZ = data.getInt("SpawnZ");
Logger.info("Loaded level.dat (seed: %d, spawn: %d,%d)", seed, spawnX, spawnZ);
dimensionCache.setWorldData(seed, spawnX, spawnZ);
}
if (nbt == null)
return;
- NBTTagCompound features = nbt.getCompoundTag("data")
- .getCompoundTag("Features");
+ NBTTagCompound features = nbt.getCompound("data")
+ .getCompound("Features");
int loadedStructureCount = 0;
- for (Object key : features.getKeySet()) {
- NBTTagCompound feature = features.getCompoundTag((String) key);
+ for (Object key : features.keySet()) {
+ NBTTagCompound feature = features.getCompound((String) key);
BoundingBox structure = BoundingBoxStructure.from(feature.getIntArray("BB"), color);
Set<BoundingBox> boundingBoxes = new HashSet<>();
NBTTagCompound[] children = getChildCompoundTags(feature, "Children");
if (nbt == null)
return;
- NBTTagCompound[] villages = getChildCompoundTags(nbt.getCompoundTag("data"), "Villages");
+ NBTTagCompound[] villages = getChildCompoundTags(nbt.getCompound("data"), "Villages");
for (NBTTagCompound village : villages) {
- BlockPos center = new BlockPos(village.getInteger("CX"), village.getInteger("CY"), village.getInteger("CZ"));
- int radius = village.getInteger("Radius");
- int population = village.getInteger("PopSize");
+ BlockPos center = new BlockPos(village.getInt("CX"), village.getInt("CY"), village.getInt("CZ"));
+ int radius = village.getInt("Radius");
+ int population = village.getInt("PopSize");
Set<BlockPos> doors = getDoors(village);
BoundingBox boundingBox = BoundingBoxVillage.from(center, radius, village.hashCode(), population, doors);
cache.addBoundingBox(boundingBox);
private static Set<BlockPos> getDoors(NBTTagCompound village) {
Set<BlockPos> doors = new HashSet<>();
for (NBTTagCompound door : getChildCompoundTags(village, "Doors")) {
- doors.add(new BlockPos(door.getInteger("X"), door.getInteger("Y"), door.getInteger("Z")));
+ doors.add(new BlockPos(door.getInt("X"), door.getInt("Y"), door.getInt("Z")));
}
return doors;
}
}
private static NBTTagCompound[] getChildCompoundTags(NBTTagCompound parent, String key) {
- NBTTagList tagList = parent.getTagList(key, 10);
+ NBTTagList tagList = parent.getList(key, 10);
NBTTagCompound[] result = new NBTTagCompound[tagList.size()];
for (int index = 0; index < tagList.size(); index++) {
- result[index] = tagList.getCompoundTagAt(index);
+ result[index] = tagList.getCompound(index);
}
return result;
}
+++ /dev/null
-package com.irtimaled.bbor.mixin.client.renderer;
-
-import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
-import net.minecraft.client.renderer.EntityRenderer;
-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;
-
-@Mixin(EntityRenderer.class)
-public class MixinEntityRenderer {
- @Inject(method = "updateCameraAndRender(FJ)V", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
- private void render(float partialTicks, long ignored, CallbackInfo ci) {
- BoundingBoxOutlineReloaded.render(partialTicks);
- }
-}
--- /dev/null
+package com.irtimaled.bbor.mixin.client.renderer;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import net.minecraft.client.renderer.GameRenderer;
+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;
+
+@Mixin(GameRenderer.class)
+public class MixinGameRenderer {
+ @Inject(method = "updateCameraAndRender(FJ)V", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
+ private void render(float partialTicks, long ignored, CallbackInfo ci) {
+ BoundingBoxOutlineReloaded.render(partialTicks);
+ }
+}
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
+import net.minecraft.world.dimension.DimensionType;
+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;
+import java.util.Map;
+
@Mixin(MinecraftServer.class)
public class MixinMinecraftServer {
- @Shadow public WorldServer[] worlds;
+ @Shadow @Final private Map<DimensionType, WorldServer> worlds;
@Inject(method = "initialWorldChunkLoad", at = @At("HEAD"))
private void initialWorldChunkLoad(CallbackInfo ci)
{
- for(World world : worlds) {
+ for(World world : worlds.values()) {
BoundingBoxOutlineReloaded.worldLoaded(world);
}
}
],
"client": [
"client.MixinMinecraft",
- "client.renderer.MixinEntityRenderer",
+ "client.renderer.MixinGameRenderer",
"client.multiplayer.MixinWorldClient",
"client.settings.MixinKeyBinding",
"client.settings.MixinGameSettings"