diff --git a/build.gradle b/build.gradle index 0bf73bd..6c8d266 100644 --- a/build.gradle +++ b/build.gradle @@ -1,20 +1,35 @@ plugins { - id 'babric-loom' version '1.1.+' + id 'fabric-loom' version '1.10.0-bta' id 'java' } +import org.gradle.internal.os.OperatingSystem + +project.ext.lwjglVersion = "3.3.3" + +switch (OperatingSystem.current()) { + case OperatingSystem.LINUX: + project.ext.lwjglNatives = "natives-linux" + break + case OperatingSystem.WINDOWS: + project.ext.lwjglNatives = "natives-windows" + break + case OperatingSystem.MAC_OS: + project.ext.lwjglNatives = "natives-macos" +} + group = project.mod_group archivesBaseName = project.mod_name version = project.mod_version loom { - gluedMinecraftJar() noIntermediateMappings() - customMinecraftManifest.set("https://github.com/Turnip-Labs/bta-manifest-repo/releases/download/v${project.bta_version}/${project.bta_version}.json") + customMinecraftMetadata.set("https://downloads.betterthanadventure.net/bta-client/${project.bta_channel}/v${project.bta_version}/manifest.json") } repositories { mavenCentral() + maven { url = "https://jitpack.io" } maven { name = 'Babric' url = 'https://maven.glass-launcher.net/babric' @@ -23,6 +38,14 @@ repositories { name = 'Fabric' url = 'https://maven.fabricmc.net/' } + maven { + name = 'SignalumMavenInfrastructure' + url = 'https://maven.thesignalumproject.net/infrastructure' + } + maven { + name = 'SignalumMavenReleases' + url = 'https://maven.thesignalumproject.net/releases' + } ivy { url = "https://github.com/Better-than-Adventure" patternLayout { @@ -32,25 +55,17 @@ repositories { metadataSources { artifact() } } ivy { - url = "https://github.com/Turnip-Labs" - patternLayout { - artifact "[organisation]/releases/download/v[revision]/[module]-[revision].jar" - m2compatible = true - } - metadataSources { artifact() } - } - ivy { - url = "https://github.com/Turnip-Labs" + url = "https://downloads.betterthanadventure.net/bta-client/${project.bta_channel}/" patternLayout { - artifact "[organisation]/releases/download/[revision]/[module]-[revision].jar" + artifact "/v[revision]/client.jar" m2compatible = true } metadataSources { artifact() } } ivy { - url = "https://github.com/Turnip-Labs" + url = "https://downloads.betterthanadventure.net/bta-server/${project.bta_channel}/" patternLayout { - artifact "[organisation]/releases/download/[revision]/[module]-bta-[revision].jar" + artifact "/v[revision]/server.jar" m2compatible = true } metadataSources { artifact() } @@ -63,41 +78,49 @@ repositories { } metadataSources { artifact() } } - ivy { - url = "https://github.com/MartinSVK12" - patternLayout { - artifact "[organisation]/releases/download/[revision]/[module]-[revision].jar" - m2compatible = true - } - metadataSources { artifact() } - } + } dependencies { - minecraft "bta-download-repo:bta:${project.bta_version}" + minecraft "::${project.bta_version}" mappings loom.layered() {} modRuntimeOnly "objects:client:43db9b498cb67058d2e12d394e6507722e71bb45" // https://piston-data.mojang.com/v1/objects/43db9b498cb67058d2e12d394e6507722e71bb45/client.jar - modImplementation "fabric-loader:fabric-loader:${project.loader_version}" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Helper library // If you do not need Halplibe you can comment this line out or delete this line - modImplementation "bta-halplibe:halplibe:${project.halplibe_version}" + modImplementation("turniplabs:halplibe:${project.halplibe_version}") - modImplementation "ModMenu:ModMenu:2.0.6" + modImplementation("turniplabs:modmenu-bta:${project.mod_menu_version}") implementation "org.slf4j:slf4j-api:1.8.0-beta4" implementation "org.apache.logging.log4j:log4j-slf4j18-impl:2.16.0" implementation 'com.google.guava:guava:33.0.0-jre' implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1' - - implementation 'org.apache.commons:commons-lang3:3.0' - var log4jVersion = "2.20.0" implementation("org.apache.logging.log4j:log4j-core:${log4jVersion}") implementation("org.apache.logging.log4j:log4j-api:${log4jVersion}") implementation("org.apache.logging.log4j:log4j-1.2-api:${log4jVersion}") + + include(implementation("org.apache.commons:commons-lang3:3.12.0")) + + modImplementation("com.github.Better-than-Adventure:legacy-lwjgl3:1.0.5") + implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion") + + runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives" + implementation "org.lwjgl:lwjgl:$lwjglVersion" + implementation "org.lwjgl:lwjgl-assimp:$lwjglVersion" + implementation "org.lwjgl:lwjgl-glfw:$lwjglVersion" + implementation "org.lwjgl:lwjgl-openal:$lwjglVersion" + implementation "org.lwjgl:lwjgl-opengl:$lwjglVersion" + implementation "org.lwjgl:lwjgl-stb:$lwjglVersion" } java { @@ -106,7 +129,7 @@ java { withSourcesJar() } -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { options.release.set 8 } @@ -116,6 +139,11 @@ jar { } } +configurations.configureEach { + // Removes LWJGL2 dependencies + exclude group: "org.lwjgl.lwjgl" +} + processResources { inputs.property "version", version diff --git a/gradle.properties b/gradle.properties index 52ccfaa..234c77d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,20 @@ org.gradle.jvmargs=-Xmx2G +org.gradle.parallel = true +org.gradle.daemon = true +fabric.loom.multiProjectOptimisation=true # BTA -bta_version=7.2-pre2 +bta_version=7.3_03 +bta_channel=release # Loader -loader_version=0.15.6-babric.6-bta +loader_version=0.15.6-bta.7 -# HalpLibe -halplibe_version=4.1.3 +# Other Mods +mod_menu_version=3.0.0 +halplibe_version=5.2.1 # Mod -mod_version=1.1.2-7.2-pre2 +mod_version=1.2.1-7.3_01 mod_group=toufoumaster mod_name=btwaila diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8049c68..d6e308a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index 46d2434..d6615a3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,10 @@ pluginManagement { repositories { + gradlePluginPortal() maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' } - gradlePluginPortal() maven { name = 'Jitpack' url = 'https://jitpack.io' @@ -13,5 +13,9 @@ pluginManagement { name = 'Babric' url = 'https://maven.glass-launcher.net/babric' } + maven { + name = 'SignalumMavenInfrastructure' + url = 'https://maven.thesignalumproject.net/infrastructure' + } } } \ No newline at end of file diff --git a/src/main/java/toufoumaster/btwaila/BTWaila.java b/src/main/java/toufoumaster/btwaila/BTWaila.java index e7c9399..a077be2 100644 --- a/src/main/java/toufoumaster/btwaila/BTWaila.java +++ b/src/main/java/toufoumaster/btwaila/BTWaila.java @@ -11,7 +11,6 @@ import org.slf4j.LoggerFactory; import toufoumaster.btwaila.entryplugins.waila.BTWailaCustomTooltipPlugin; import toufoumaster.btwaila.entryplugins.waila.BTWailaPlugin; -import toufoumaster.btwaila.gui.components.WailaTextComponent; import toufoumaster.btwaila.mixin.mixins.accessors.PacketAccessor; import toufoumaster.btwaila.network.packet.PacketEntityData; import toufoumaster.btwaila.network.packet.PacketRequestEntityData; @@ -52,16 +51,7 @@ public void beforeGameStart() { @Override public void afterGameStart() { - WailaTextComponent.init(); translator = I18n.getInstance(); - LOGGER.info("Loading implementations."); - - if (!Global.isServer){ - BTWailaClient.onLoad(); - } - - new BTWailaPlugin().initializePlugin(TooltipRegistry.getInstance(), LOGGER); // Load BTWaila tooltips first - FabricLoader.getInstance().getEntrypointContainers("btwaila", BTWailaCustomTooltipPlugin.class).forEach(plugin -> plugin.getEntrypoint().initializePlugin(TooltipRegistry.getInstance(), LOGGER)); LOGGER.info("BTWaila initialized."); System.out.println(modVersion); @@ -69,8 +59,8 @@ public void afterGameStart() { @Override public void onInitialize() { - PacketAccessor.callAddIdClassMapping(220, false, true, PacketRequestTileEntityData.class); - PacketAccessor.callAddIdClassMapping(221, false, true, PacketRequestEntityData.class); - PacketAccessor.callAddIdClassMapping(222, true, false, PacketEntityData.class); + PacketAccessor.callAddMapping(220, false, true, PacketRequestTileEntityData.class); + PacketAccessor.callAddMapping(221, false, true, PacketRequestEntityData.class); + PacketAccessor.callAddMapping(222, true, false, PacketEntityData.class); } } diff --git a/src/main/java/toufoumaster/btwaila/BTWailaClient.java b/src/main/java/toufoumaster/btwaila/BTWailaClient.java index 40864f6..026c531 100644 --- a/src/main/java/toufoumaster/btwaila/BTWailaClient.java +++ b/src/main/java/toufoumaster/btwaila/BTWailaClient.java @@ -1,10 +1,12 @@ package toufoumaster.btwaila; +import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.options.GuiOptions; + +import net.minecraft.client.gui.Screen; +import net.minecraft.client.gui.options.ScreenOptions; import net.minecraft.client.gui.options.components.BooleanOptionComponent; import net.minecraft.client.gui.options.components.KeyBindingComponent; import net.minecraft.client.gui.options.components.OptionsCategory; @@ -12,21 +14,32 @@ import net.minecraft.client.gui.options.data.OptionsPage; import net.minecraft.client.gui.options.data.OptionsPages; import net.minecraft.client.option.GameSettings; -import net.minecraft.core.item.Item; +import net.minecraft.core.item.Items; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import toufoumaster.btwaila.entryplugins.waila.BTWailaCustomTooltipPlugin; +import toufoumaster.btwaila.entryplugins.waila.BTWailaPlugin; +import toufoumaster.btwaila.gui.components.WailaTextComponent; import toufoumaster.btwaila.mixin.interfaces.IOptions; +import toufoumaster.btwaila.tooltips.TooltipRegistry; +import turniplabs.halplibe.util.ClientStartEntrypoint; import java.util.HashMap; import java.util.Map; -public class BTWailaClient { +public class BTWailaClient implements ClientModInitializer, ClientStartEntrypoint { public static GameSettings gameSettings; public static IOptions modSettings; public static OptionsPage wailaOptions; public static Map modIds = new HashMap<>(); + + public static final String MOD_ID = "btwaila|client"; + public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); + public static void onLoad(){ - gameSettings = Minecraft.getMinecraft(Minecraft.class).gameSettings; + gameSettings = Minecraft.getMinecraft().gameSettings; modSettings = (IOptions) gameSettings; - wailaOptions = new OptionsPage("btwaila.options.title", Item.basket.getDefaultStack()) + wailaOptions = new OptionsPage("btwaila.options.title", Items.BASKET.getDefaultStack()) .withComponent(new OptionsCategory("btwaila.options.category.general") .withComponent(new ToggleableOptionComponent<>(modSettings.bTWaila$getTooltipFormatting()))) .withComponent(new OptionsCategory("btwaila.options.category.block") @@ -55,7 +68,26 @@ public static void onLoad(){ .withComponent(new KeyBindingComponent(modSettings.bTWaila$getKeyDemoCycle()))); } - public static GuiOptions getOptionsPage(GuiScreen parent){ - return new GuiOptions(parent, wailaOptions); + public static Screen getOptionsPage(Screen parent){ + return new ScreenOptions(parent, wailaOptions); + } + + @Override + public void onInitializeClient() { + + } + + @Override + public void beforeClientStart() { + + } + + @Override + public void afterClientStart() { + onLoad(); + WailaTextComponent.init(); + LOGGER.info("Loading implementations."); + new BTWailaPlugin().initializePlugin(TooltipRegistry.getInstance(), LOGGER); // Load BTWaila tooltips first + FabricLoader.getInstance().getEntrypointContainers("btwaila", BTWailaCustomTooltipPlugin.class).forEach(plugin -> plugin.getEntrypoint().initializePlugin(TooltipRegistry.getInstance(), LOGGER)); } } diff --git a/src/main/java/toufoumaster/btwaila/BTWailaComponents.java b/src/main/java/toufoumaster/btwaila/BTWailaComponents.java index 517c480..b47e44b 100644 --- a/src/main/java/toufoumaster/btwaila/BTWailaComponents.java +++ b/src/main/java/toufoumaster/btwaila/BTWailaComponents.java @@ -1,6 +1,11 @@ package toufoumaster.btwaila; import net.minecraft.client.gui.hud.*; +import net.minecraft.client.gui.hud.component.ComponentAnchor; +import net.minecraft.client.gui.hud.component.HudComponent; +import net.minecraft.client.gui.hud.component.HudComponents; +import net.minecraft.client.gui.hud.component.layout.LayoutAbsolute; +import net.minecraft.client.gui.hud.component.layout.LayoutSnap; import toufoumaster.btwaila.gui.components.*; import turniplabs.halplibe.util.ClientStartEntrypoint; @@ -20,18 +25,18 @@ public void beforeClientStart() { public void afterClientStart() { BlockBaseInfoComp = HudComponents.register( new BaseInfoComponent("wailaInfoBase", - new AbsoluteLayout(0.5f, 0.0f, ComponentAnchor.TOP_CENTER))); + new LayoutAbsolute(0.5f, 0.0f, ComponentAnchor.TOP_CENTER))); BlockBreakComp = HudComponents.register( new HarvestInfoComponent("wailaInfoHarvest", - new SnapLayout(BlockBaseInfoComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); + new LayoutSnap(BlockBaseInfoComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); BlockAdvancedInfoComp = HudComponents.register( new AdvancedInfoComponent("wailaInfoAdvanced", - new SnapLayout(BlockBreakComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); + new LayoutSnap(BlockBreakComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); BlockDisplayedComp = HudComponents.register( new DropIconComponent("wailaInfoIcon", - new SnapLayout(BlockBaseInfoComp, ComponentAnchor.TOP_LEFT, ComponentAnchor.TOP_RIGHT))); + new LayoutSnap(BlockBaseInfoComp, ComponentAnchor.TOP_LEFT, ComponentAnchor.TOP_RIGHT))); BlockToolComp = HudComponents.register( new HarvestToolComponent("wailaInfoTool", - new SnapLayout(BlockDisplayedComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); + new LayoutSnap(BlockDisplayedComp, ComponentAnchor.BOTTOM_CENTER, ComponentAnchor.TOP_CENTER))); } } diff --git a/src/main/java/toufoumaster/btwaila/demo/DemoEntry.java b/src/main/java/toufoumaster/btwaila/demo/DemoEntry.java index 10df78a..f662fc1 100644 --- a/src/main/java/toufoumaster/btwaila/demo/DemoEntry.java +++ b/src/main/java/toufoumaster/btwaila/demo/DemoEntry.java @@ -2,41 +2,16 @@ import net.minecraft.core.block.Block; import net.minecraft.core.block.entity.TileEntity; -import net.minecraft.core.block.entity.TileEntityBasket; -import net.minecraft.core.block.entity.TileEntityFlag; -import net.minecraft.core.block.entity.TileEntityFlowerJar; -import net.minecraft.core.block.entity.TileEntityFurnace; -import net.minecraft.core.block.entity.TileEntityMobSpawner; -import net.minecraft.core.block.entity.TileEntityNote; -import net.minecraft.core.block.entity.TileEntityRecordPlayer; -import net.minecraft.core.block.entity.TileEntitySeat; -import net.minecraft.core.block.entity.TileEntityTrommel; -import net.minecraft.core.crafting.LookupFuelFurnace; import net.minecraft.core.entity.Entity; -import net.minecraft.core.entity.EntityDispatcher; -import net.minecraft.core.entity.EntityLiving; -import net.minecraft.core.entity.animal.EntityChicken; -import net.minecraft.core.entity.animal.EntityPig; -import net.minecraft.core.entity.monster.EntityHuman; -import net.minecraft.core.entity.monster.EntityMonster; -import net.minecraft.core.entity.monster.EntitySkeleton; -import net.minecraft.core.entity.player.EntityPlayer; -import net.minecraft.core.entity.vehicle.EntityMinecart; -import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; -import net.minecraft.server.entity.player.EntityPlayerMP; - -import java.util.ArrayList; -import java.util.Map; -import java.util.Random; public class DemoEntry { - public Block block; + public Block block; public int meta; public Entity entity; public TileEntity tileEntity; public ItemStack[] drops; - public DemoEntry(Block block, int meta, TileEntity tileEntity, ItemStack[] drops){ + public DemoEntry(Block block, int meta, TileEntity tileEntity, ItemStack[] drops){ this.block = block; this.meta = meta; this.tileEntity = tileEntity; diff --git a/src/main/java/toufoumaster/btwaila/demo/DemoManager.java b/src/main/java/toufoumaster/btwaila/demo/DemoManager.java index ef426bf..67ab46b 100644 --- a/src/main/java/toufoumaster/btwaila/demo/DemoManager.java +++ b/src/main/java/toufoumaster/btwaila/demo/DemoManager.java @@ -50,8 +50,8 @@ public static ItemStack randomStack(Random random){ Item item = allRealItems.get(random.nextInt(allRealItems.size())); int stackSize; int meta; - if (item.getItemStackLimit() > 1){ - stackSize = random.nextInt(item.getItemStackLimit() - 1) + 1; + if (item.getItemStackLimit(item.getDefaultStack()) > 1){ + stackSize = random.nextInt(item.getItemStackLimit(item.getDefaultStack()) - 1) + 1; } else { stackSize = 1; } diff --git a/src/main/java/toufoumaster/btwaila/demo/TileEntityDemoChest.java b/src/main/java/toufoumaster/btwaila/demo/TileEntityDemoChest.java index 7ed93ee..1f0093e 100644 --- a/src/main/java/toufoumaster/btwaila/demo/TileEntityDemoChest.java +++ b/src/main/java/toufoumaster/btwaila/demo/TileEntityDemoChest.java @@ -1,107 +1,151 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + package toufoumaster.btwaila.demo; -import com.mojang.nbt.CompoundTag; -import com.mojang.nbt.ListTag; +import com.mojang.logging.LogUtils; +import com.mojang.nbt.tags.CompoundTag; +import com.mojang.nbt.tags.ListTag; +import net.minecraft.core.block.Block; +import net.minecraft.core.block.BlockLogicChest; +import net.minecraft.core.block.BlockLogicChest.Type; import net.minecraft.core.block.entity.TileEntity; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.core.block.motion.CarriedBlock; +import net.minecraft.core.entity.Entity; +import net.minecraft.core.entity.EntityItem; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.item.ItemStack; -import net.minecraft.core.player.inventory.IInventory; import net.minecraft.core.player.inventory.InventorySorter; +import net.minecraft.core.player.inventory.container.Container; +import net.minecraft.core.util.helper.Direction; +import net.minecraft.core.world.World; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; import java.util.Random; -public class TileEntityDemoChest extends TileEntity implements IInventory { - private ItemStack[] chestContents = new ItemStack[36 * 2]; - public TileEntityDemoChest(Random random){ +public class TileEntityDemoChest extends TileEntity implements Container { + private static final Logger LOGGER = LogUtils.getLogger(); + private ItemStack[] chestContents = new ItemStack[36]; + + public TileEntityDemoChest(Random random) { for (int i = 0; i < chestContents.length; i++) { chestContents[i] = DemoManager.randomStack(random); } } - @Override - public int getSizeInventory() { - return 27 * 2; + + public int getContainerSize() { + return 27; } - @Override - public ItemStack getStackInSlot(int i) { - return this.chestContents[i]; + public @Nullable ItemStack getItem(int index) { + return this.chestContents[index]; } - @Override - public ItemStack decrStackSize(int i, int j) { - if (this.chestContents[i] != null) { - if (this.chestContents[i].stackSize <= j) { - ItemStack itemstack = this.chestContents[i]; - this.chestContents[i] = null; - this.onInventoryChanged(); + public @Nullable ItemStack removeItem(int index, int takeAmount) { + if (this.chestContents[index] != null) { + if (this.chestContents[index].stackSize <= takeAmount) { + ItemStack itemstack = this.chestContents[index]; + this.chestContents[index] = null; + this.setChanged(); return itemstack; + } else { + ItemStack itemstack1 = this.chestContents[index].splitStack(takeAmount); + if (this.chestContents[index].stackSize <= 0) { + this.chestContents[index] = null; + } + + this.setChanged(); + return itemstack1; } - ItemStack itemstack1 = this.chestContents[i].splitStack(j); - if (this.chestContents[i].stackSize <= 0) { - this.chestContents[i] = null; - } - this.onInventoryChanged(); - return itemstack1; + } else { + return null; } - return null; } - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - this.chestContents[i] = itemstack; - if (itemstack != null && itemstack.stackSize > this.getInventoryStackLimit()) { - itemstack.stackSize = this.getInventoryStackLimit(); + public void setItem(int index, @Nullable ItemStack itemstack) { + this.chestContents[index] = itemstack; + if (itemstack != null && itemstack.stackSize > this.getMaxStackSize()) { + itemstack.stackSize = this.getMaxStackSize(); } - this.onInventoryChanged(); + + this.setChanged(); } - @Override - public String getInvName() { - return "Chest"; + public String getNameTranslationKey() { + return "container.chest.name"; } - @Override public void readFromNBT(CompoundTag nbttagcompound) { super.readFromNBT(nbttagcompound); ListTag nbttaglist = nbttagcompound.getList("Items"); - this.chestContents = new ItemStack[this.getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); ++i) { + this.chestContents = new ItemStack[this.getContainerSize()]; + + for(int i = 0; i < nbttaglist.tagCount(); ++i) { CompoundTag nbttagcompound1 = (CompoundTag)nbttaglist.tagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xFF; - if (j >= this.chestContents.length) continue; - this.chestContents[j] = ItemStack.readItemStackFromNbt(nbttagcompound1); + int j = nbttagcompound1.getByte("Slot") & 255; + if (j >= 0 && j < this.chestContents.length) { + this.chestContents[j] = ItemStack.readItemStackFromNbt(nbttagcompound1); + } } + } - @Override public void writeToNBT(CompoundTag nbttagcompound) { super.writeToNBT(nbttagcompound); ListTag nbttaglist = new ListTag(); - for (int i = 0; i < this.chestContents.length; ++i) { - if (this.chestContents[i] == null) continue; - CompoundTag nbttagcompound1 = new CompoundTag(); - nbttagcompound1.putByte("Slot", (byte)i); - this.chestContents[i].writeToNBT(nbttagcompound1); - nbttaglist.addTag(nbttagcompound1); + + for(int i = 0; i < this.chestContents.length; ++i) { + if (this.chestContents[i] != null) { + CompoundTag nbttagcompound1 = new CompoundTag(); + nbttagcompound1.putByte("Slot", (byte)i); + this.chestContents[i].writeToNBT(nbttagcompound1); + nbttaglist.addTag(nbttagcompound1); + } } + nbttagcompound.put("Items", nbttaglist); } - @Override - public int getInventoryStackLimit() { + public int getMaxStackSize() { return 64; } - @Override - public boolean canInteractWith(EntityPlayer entityplayer) { - if (this.worldObj.getBlockTileEntity(this.x, this.y, this.z) != this) { + public boolean stillValid(Player entityplayer) { + if (this.worldObj != null && this.worldObj.getTileEntity(this.x, this.y, this.z) == this) { + return entityplayer.distanceToSqr((double)this.x + (double)0.5F, (double)this.y + (double)0.5F, (double)this.z + (double)0.5F) <= (double)64.0F; + } else { return false; } - return entityplayer.distanceToSqr((double)this.x + 0.5, (double)this.y + 0.5, (double)this.z + 0.5) <= 64.0; } - @Override - public void sortInventory() { + public void sortContainer() { InventorySorter.sortInventory(this.chestContents); } + + public void dropContents(World world, int x, int y, int z) { + super.dropContents(world, x, y, z); + + for(int i = 0; i < this.getContainerSize(); ++i) { + ItemStack itemStack = this.getItem(i); + if (itemStack != null) { + EntityItem item = world.dropItem(x, y, z, itemStack); + item.xd *= (double)0.5F; + item.yd *= (double)0.5F; + item.zd *= (double)0.5F; + item.pickupDelay = 0; + } + } + + } + + public boolean canBeCarried(World world, Entity potentialHolder) { + return true; + } + + public CarriedBlock getCarriedEntry(World world, Entity holder, Block currentBlock, int currentMeta) { + return super.getCarriedEntry(world, holder, currentBlock, BlockLogicChest.getMetaWithDirection(BlockLogicChest.getMetaWithType(currentMeta, Type.SINGLE), Direction.NORTH)); + } } diff --git a/src/main/java/toufoumaster/btwaila/entryplugins/modmenu/ModMenuModule.java b/src/main/java/toufoumaster/btwaila/entryplugins/modmenu/ModMenuModule.java index 40c6ae8..a6a42bb 100644 --- a/src/main/java/toufoumaster/btwaila/entryplugins/modmenu/ModMenuModule.java +++ b/src/main/java/toufoumaster/btwaila/entryplugins/modmenu/ModMenuModule.java @@ -1,7 +1,7 @@ package toufoumaster.btwaila.entryplugins.modmenu; import io.github.prospector.modmenu.api.ModMenuApi; -import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.Screen; import toufoumaster.btwaila.BTWaila; import toufoumaster.btwaila.BTWailaClient; @@ -14,7 +14,7 @@ public String getModId() { } @Override - public Function getConfigScreenFactory() { - return (BTWailaClient::getOptionsPage); + public Function getConfigScreenFactory() { + return BTWailaClient::getOptionsPage; } } diff --git a/src/main/java/toufoumaster/btwaila/entryplugins/waila/BTWailaPlugin.java b/src/main/java/toufoumaster/btwaila/entryplugins/waila/BTWailaPlugin.java index 6a7ba2b..0c40257 100644 --- a/src/main/java/toufoumaster/btwaila/entryplugins/waila/BTWailaPlugin.java +++ b/src/main/java/toufoumaster/btwaila/entryplugins/waila/BTWailaPlugin.java @@ -1,22 +1,13 @@ package toufoumaster.btwaila.entryplugins.waila; -import net.minecraft.core.block.entity.TileEntityBasket; -import net.minecraft.core.block.entity.TileEntityFlag; -import net.minecraft.core.block.entity.TileEntityFlowerJar; -import net.minecraft.core.block.entity.TileEntityFurnace; -import net.minecraft.core.block.entity.TileEntityMobSpawner; -import net.minecraft.core.block.entity.TileEntityNote; -import net.minecraft.core.block.entity.TileEntityRecordPlayer; -import net.minecraft.core.block.entity.TileEntitySeat; -import net.minecraft.core.block.entity.TileEntitySign; -import net.minecraft.core.block.entity.TileEntityTrommel; +import net.minecraft.core.block.entity.*; import net.minecraft.core.entity.EntityPainting; -import net.minecraft.core.entity.animal.EntityChicken; -import net.minecraft.core.entity.animal.EntityPig; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.core.entity.animal.MobChicken; +import net.minecraft.core.entity.animal.MobPig; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.entity.vehicle.EntityBoat; import net.minecraft.core.entity.vehicle.EntityMinecart; -import net.minecraft.core.player.inventory.IInventory; +import net.minecraft.core.player.inventory.container.Container; import org.slf4j.Logger; import toufoumaster.btwaila.tooltips.EntityTooltip; import toufoumaster.btwaila.tooltips.TileTooltip; @@ -28,7 +19,7 @@ import toufoumaster.btwaila.tooltips.block.JarToolTip; import toufoumaster.btwaila.tooltips.block.MobSpawnerTooltip; import toufoumaster.btwaila.tooltips.block.NoteBlockTooltip; -import toufoumaster.btwaila.tooltips.block.RecordPlayerTooltip; +import toufoumaster.btwaila.tooltips.block.JukeboxTooltip; import toufoumaster.btwaila.tooltips.block.SeatTooltip; import toufoumaster.btwaila.tooltips.block.SignTooltip; import toufoumaster.btwaila.tooltips.block.TrommelTooltip; @@ -41,23 +32,23 @@ public class BTWailaPlugin implements BTWailaCustomTooltipPlugin { public static TooltipRegistry registry = TooltipRegistry.getInstance(); - public static TileTooltip INVENTORY = registry.register(new InventoryTooltip()); + public static TileTooltip INVENTORY = registry.register(new InventoryTooltip()); public static TileTooltip BASKET = registry.register(new BasketTooltip()); public static TileTooltip FLAG = registry.register(new FlagTooltip()); public static TileTooltip FURNACE = registry.register(new FurnaceTooltip()); public static TileTooltip JAR = registry.register(new JarToolTip()); public static TileTooltip MOB_SPAWNER = registry.register(new MobSpawnerTooltip()); - public static TileTooltip NOTE_BLOCK = registry.register(new NoteBlockTooltip()); - public static TileTooltip JUKEBOX = registry.register(new RecordPlayerTooltip()); + public static TileTooltip NOTE_BLOCK = registry.register(new NoteBlockTooltip()); + public static TileTooltip JUKEBOX = registry.register(new JukeboxTooltip()); public static TileTooltip SEAT = registry.register(new SeatTooltip()); public static TileTooltip SIGN = registry.register(new SignTooltip()); public static TileTooltip TROMMEL = registry.register(new TrommelTooltip()); - public static EntityTooltip CHICKEN = registry.register(new ChickenTooltip()); + public static EntityTooltip CHICKEN = registry.register(new ChickenTooltip()); public static EntityTooltip BOAT = registry.register(new BoatTooltip()); - public static EntityTooltip PIG = registry.register(new PigTooltip()); + public static EntityTooltip PIG = registry.register(new PigTooltip()); public static EntityTooltip PAINTING = registry.register(new PaintingTooltip()); public static EntityTooltip MINECART = registry.register(new MinecartTooltip()); - public static EntityTooltip PLAYER = registry.register(new PlayerTooltip()); + public static EntityTooltip PLAYER = registry.register(new PlayerTooltip()); private static boolean hasLoaded = false; @Override public void initializePlugin(TooltipRegistry registry, Logger logger) { diff --git a/src/main/java/toufoumaster/btwaila/gui/components/AdvancedInfoComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/AdvancedInfoComponent.java index 2086e03..08599c7 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/AdvancedInfoComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/AdvancedInfoComponent.java @@ -1,21 +1,21 @@ package toufoumaster.btwaila.gui.components; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.player.EntityClientPlayerMP; +import net.minecraft.client.entity.player.PlayerLocalMultiplayer; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.hud.ComponentAnchor; -import net.minecraft.client.gui.hud.Layout; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.ComponentAnchor; +import net.minecraft.client.gui.hud.component.layout.Layout; import net.minecraft.core.Global; -import net.minecraft.core.HitResult; import net.minecraft.core.block.Block; -import net.minecraft.core.block.BlockChest; -import net.minecraft.core.block.BlockTileEntity; +import net.minecraft.core.block.BlockLogic; +import net.minecraft.core.block.BlockLogicChest; import net.minecraft.core.block.entity.TileEntity; import net.minecraft.core.block.entity.TileEntityChest; import net.minecraft.core.entity.Entity; -import net.minecraft.core.entity.EntityLiving; +import net.minecraft.core.entity.Mob; import net.minecraft.core.util.helper.Direction; +import net.minecraft.core.util.phys.HitResult; import net.minecraft.core.world.World; import org.lwjgl.input.Keyboard; import toufoumaster.btwaila.BTWaila; @@ -33,7 +33,7 @@ public AdvancedInfoComponent(String key, Layout layout) { } @Override public int getAnchorY(ComponentAnchor anchor) { - return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft(this))); + return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft())); } @Override public boolean isVisible(Minecraft minecraft) { @@ -41,11 +41,11 @@ public boolean isVisible(Minecraft minecraft) { } @Override - public void renderPost(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float partialTick) { + public void renderPost(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float partialTick) { HitResult hitResult = minecraft.objectMouseOver; if (hitResult == null) {return;} if (hitResult.hitType == HitResult.HitType.TILE) { - TileEntity tileEntity = minecraft.theWorld.getBlockTileEntity(hitResult.x, hitResult.y, hitResult.z); + TileEntity tileEntity = minecraft.currentWorld.getTileEntity(hitResult.x, hitResult.y, hitResult.z); renderBlockOverlay(tileEntity); } else if (hitResult.hitType == HitResult.HitType.ENTITY) { renderEntityOverlay(hitResult.entity); @@ -76,7 +76,7 @@ public void renderPreviewPost(Minecraft minecraft, Gui gui, Layout layout, int x private void renderBlockOverlay(TileEntity tileEntity){ setScale(modSettings().bTWaila$getScaleTooltips().value+0.5f); if (!modSettings().bTWaila$getBlockTooltips().value) return; - if (minecraft.fontRenderer != null) { + if (minecraft.font != null) { if (modSettings().bTWaila$getBlockAdvancedTooltips().value) { drawFunctionalBlocksData(tileEntity); } @@ -85,16 +85,16 @@ private void renderBlockOverlay(TileEntity tileEntity){ private void renderEntityOverlay(Entity entity){ setScale(modSettings().bTWaila$getScaleTooltips().value+0.5f); if (!modSettings().bTWaila$getEntityTooltips().value) return; - boolean isLivingEntity = (entity instanceof EntityLiving); - EntityLiving entityLiving = isLivingEntity ? (EntityLiving) entity : null; + boolean isLivingEntity = (entity instanceof Mob); + Mob Mob = isLivingEntity ? (Mob) entity : null; if (modSettings().bTWaila$getEntityAdvancedTooltips().value) { - if (minecraft.thePlayer instanceof EntityClientPlayerMP && BTWaila.canUseAdvancedTooltips) { - EntityClientPlayerMP playerMP = (EntityClientPlayerMP) minecraft.thePlayer; + if (minecraft.thePlayer instanceof PlayerLocalMultiplayer && BTWaila.canUseAdvancedTooltips) { + PlayerLocalMultiplayer playerMP = (PlayerLocalMultiplayer) minecraft.thePlayer; playerMP.sendQueue.addToSendQueue(new PacketRequestEntityData(entity.id)); } - if (isLivingEntity) drawEntityHealth(entityLiving); + if (isLivingEntity) drawEntityHealth(Mob); for (EntityTooltip tooltip : TooltipRegistry.entityTooltips) { if (tooltip.isInstance(entity) && tooltip.isInList(entity.getClass())) { tooltip._drawAdvancedTooltip(entity, this); @@ -103,13 +103,11 @@ private void renderEntityOverlay(Entity entity){ } } private void drawFunctionalBlocksData(TileEntity tileEntity) { - if (tileEntity != null) { + if (tileEntity != null && tileEntity.worldObj != null) { boolean askTileEntity = !(BTWaila.excludeContinuousTileEntityData.get(tileEntity.getClass()) != null ? BTWaila.excludeContinuousTileEntityData.get(tileEntity.getClass()) : false); if (tileEntity.worldObj == null) return; - Block block = Block.blocksList[tileEntity.worldObj.getBlockId(tileEntity.x, tileEntity.y, tileEntity.z)]; - if (!(block instanceof BlockTileEntity)) return; if (!Global.isServer && BTWaila.canUseAdvancedTooltips && askTileEntity) { - EntityClientPlayerMP playerMP = (EntityClientPlayerMP) minecraft.thePlayer; + PlayerLocalMultiplayer playerMP = (PlayerLocalMultiplayer) minecraft.thePlayer; playerMP.sendQueue.addToSendQueue(new PacketRequestTileEntityData(tileEntity.x, tileEntity.y, tileEntity.z)); if (tileEntity instanceof TileEntityChest){ requestOtherHalfOfChest(playerMP.world,tileEntity.x, tileEntity.y, tileEntity.z, playerMP); @@ -122,49 +120,49 @@ private void drawFunctionalBlocksData(TileEntity tileEntity) { } } } - private void requestOtherHalfOfChest(World world, int x, int y, int z, EntityClientPlayerMP playerMP) { + private void requestOtherHalfOfChest(World world, int x, int y, int z, PlayerLocalMultiplayer playerMP) { int meta = world.getBlockMetadata(x, y, z); - BlockChest.Type type = BlockChest.getTypeFromMeta(meta); - if (type != BlockChest.Type.SINGLE) { + BlockLogicChest.Type type = BlockLogicChest.getTypeFromMeta(meta); + if (type != BlockLogicChest.Type.SINGLE) { int otherMeta; - Direction direction = BlockChest.getDirectionFromMeta(meta); + Direction direction = BlockLogicChest.getDirectionFromMeta(meta); int otherChestX = x; int otherChestZ = z; if (direction == Direction.NORTH) { - if (type == BlockChest.Type.LEFT) { + if (type == BlockLogicChest.Type.LEFT) { --otherChestX; } - if (type == BlockChest.Type.RIGHT) { + if (type == BlockLogicChest.Type.RIGHT) { ++otherChestX; } } if (direction == Direction.EAST) { - if (type == BlockChest.Type.LEFT) { + if (type == BlockLogicChest.Type.LEFT) { --otherChestZ; } - if (type == BlockChest.Type.RIGHT) { + if (type == BlockLogicChest.Type.RIGHT) { ++otherChestZ; } } if (direction == Direction.SOUTH) { - if (type == BlockChest.Type.LEFT) { + if (type == BlockLogicChest.Type.LEFT) { ++otherChestX; } - if (type == BlockChest.Type.RIGHT) { + if (type == BlockLogicChest.Type.RIGHT) { --otherChestX; } } if (direction == Direction.WEST) { - if (type == BlockChest.Type.LEFT) { + if (type == BlockLogicChest.Type.LEFT) { ++otherChestZ; } - if (type == BlockChest.Type.RIGHT) { + if (type == BlockLogicChest.Type.RIGHT) { --otherChestZ; } } - if (BlockChest.isChest(world, otherChestX, y, otherChestZ) && BlockChest.getDirectionFromMeta(otherMeta = world.getBlockMetadata(otherChestX, y, otherChestZ)) == direction) { - BlockChest.Type otherType = BlockChest.getTypeFromMeta(otherMeta); - if (type == BlockChest.Type.LEFT && otherType == BlockChest.Type.RIGHT || type == BlockChest.Type.RIGHT && otherType == BlockChest.Type.LEFT) { + if (BlockLogicChest.isChest(world, otherChestX, y, otherChestZ) && BlockLogicChest.getDirectionFromMeta(otherMeta = world.getBlockMetadata(otherChestX, y, otherChestZ)) == direction) { + BlockLogicChest.Type otherType = BlockLogicChest.getTypeFromMeta(otherMeta); + if (type == BlockLogicChest.Type.LEFT && otherType == BlockLogicChest.Type.RIGHT || type == BlockLogicChest.Type.RIGHT && otherType == BlockLogicChest.Type.LEFT) { playerMP.sendQueue.addToSendQueue(new PacketRequestTileEntityData(otherChestX, y, otherChestZ)); } } diff --git a/src/main/java/toufoumaster/btwaila/gui/components/BaseInfoComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/BaseInfoComponent.java index 8be57ff..6ce08e9 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/BaseInfoComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/BaseInfoComponent.java @@ -2,18 +2,18 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiHudDesigner; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.hud.ComponentAnchor; -import net.minecraft.client.gui.hud.Layout; -import net.minecraft.core.HitResult; +import net.minecraft.client.gui.ScreenHudDesigner; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.ComponentAnchor; +import net.minecraft.client.gui.hud.component.layout.Layout; import net.minecraft.core.block.Block; import net.minecraft.core.entity.Entity; -import net.minecraft.core.entity.EntityLiving; -import net.minecraft.core.entity.monster.EntityMonster; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.core.entity.Mob; +import net.minecraft.core.entity.monster.MobMonster; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.enums.EnumDropCause; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.util.phys.HitResult; import toufoumaster.btwaila.BTWailaClient; import toufoumaster.btwaila.demo.DemoManager; import toufoumaster.btwaila.util.Colors; @@ -29,13 +29,13 @@ public BaseInfoComponent(String key, Layout layout) { @Override public int getAnchorY(ComponentAnchor anchor) { if (anchor.yPosition == 0.0f && !(anchor == ComponentAnchor.TOP_CENTER)){ - return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft(this))) + topPadding; + return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft())) + topPadding; } return (int)(anchor.yPosition * getYSize(minecraft)); } @Override public int getYSize(Minecraft mc) { - if (!(mc.currentScreen instanceof GuiHudDesigner) && !this.isVisible(mc)) { + if (!(mc.currentScreen instanceof ScreenHudDesigner) && !this.isVisible(mc)) { return 0; } return height(); @@ -46,14 +46,17 @@ public boolean isVisible(Minecraft minecraft) { } @Override - public void renderPost(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float f) { + public void renderPost(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float f) { addOffY(topPadding); HitResult hitResult = minecraft.objectMouseOver; if (hitResult == null) {return;} if (hitResult.hitType == HitResult.HitType.TILE) { - Block block = Block.getBlock(minecraft.theWorld.getBlockId(hitResult.x, hitResult.y, hitResult.z)); - int meta = minecraft.theWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z); - ItemStack[] drops = block.getBreakResult(minecraft.theWorld, EnumDropCause.PICK_BLOCK, hitResult.x, hitResult.y, hitResult.z, minecraft.theWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z), null); + Block block = minecraft.currentWorld.getBlock(hitResult.x, hitResult.y, hitResult.z); + int meta = minecraft.currentWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z); + ItemStack[] drops = null; + if (block != null) { + drops = block.getBreakResult(minecraft.currentWorld, EnumDropCause.PICK_BLOCK, hitResult.x, hitResult.y, hitResult.z, minecraft.currentWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z), null); + } baseBlockInfo(block, meta, drops); } else if (hitResult.hitType == HitResult.HitType.ENTITY) { baseEntityInfo(hitResult.entity); @@ -63,7 +66,7 @@ public void renderPost(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize @Override public void renderPreviewPost(Minecraft minecraft, Gui gui, Layout layout, int xScreenSize, int yScreenSize) { addOffY(topPadding); - Block block = DemoManager.getCurrentEntry().block; + Block block = DemoManager.getCurrentEntry().block; int meta = DemoManager.getCurrentEntry().meta; ItemStack[] drops = DemoManager.getCurrentEntry().drops; Entity entity = DemoManager.getCurrentEntry().entity; @@ -73,9 +76,9 @@ public void renderPreviewPost(Minecraft minecraft, Gui gui, Layout layout, int x baseEntityInfo(entity); } } - protected void baseBlockInfo(Block block, int blockMetadata, ItemStack[] blockDrops){ + protected void baseBlockInfo(Block block, int blockMetadata, ItemStack[] blockDrops){ if (!modSettings().bTWaila$getBlockTooltips().value) return; - if (minecraft.fontRenderer == null) return; + if (minecraft.font == null) return; ItemStack renderItem = new ItemStack(block, 1, blockMetadata); if (blockDrops != null && blockDrops.length > 0) renderItem = blockDrops[0]; @@ -90,7 +93,7 @@ protected void baseBlockInfo(Block block, int blockMetadata, ItemStack[] blockDr blockSource = BTWailaClient.modIds.get(modId); } } - String idString = block.id + ":" + blockMetadata; + String idString = block.id() + ":" + blockMetadata; if (modSettings().bTWaila$getShowBlockId().value){ blockName += " " + idString; } @@ -103,17 +106,17 @@ protected void baseBlockInfo(Block block, int blockMetadata, ItemStack[] blockDr } protected void baseEntityInfo(Entity entity){ if (!modSettings().bTWaila$getEntityTooltips().value) return; - boolean isLivingEntity = (entity instanceof EntityLiving); - EntityLiving entityLiving = isLivingEntity ? (EntityLiving) entity : null; + boolean isLivingEntity = (entity instanceof Mob); + Mob Mob = isLivingEntity ? (Mob) entity : null; int color = Colors.WHITE; if (isLivingEntity) { color = Colors.GREEN; - if (entity instanceof EntityMonster) { + if (entity instanceof MobMonster) { color = Colors.RED; } - else if (entity instanceof EntityPlayer) { - color = entityLiving.chatColor; + else if (entity instanceof Player) { + color = Mob.chatColor; } } drawStringJustified(AdvancedInfoComponent.getEntityName(entity), 0, getXSize(minecraft), color); diff --git a/src/main/java/toufoumaster/btwaila/gui/components/DropIconComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/DropIconComponent.java index 8e7080a..ea28b99 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/DropIconComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/DropIconComponent.java @@ -2,27 +2,28 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.hud.Layout; -import net.minecraft.client.gui.hud.MovableHudComponent; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.HudComponentMovable; +import net.minecraft.client.gui.hud.component.layout.Layout; import net.minecraft.client.render.Lighting; import net.minecraft.client.render.item.model.ItemModel; import net.minecraft.client.render.item.model.ItemModelDispatcher; import net.minecraft.client.render.tessellator.Tessellator; -import net.minecraft.core.HitResult; import net.minecraft.core.WeightedRandomLootObject; import net.minecraft.core.block.Block; import net.minecraft.core.entity.Entity; -import net.minecraft.core.entity.EntityLiving; +import net.minecraft.core.entity.Mob; import net.minecraft.core.enums.EnumDropCause; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; +import net.minecraft.core.util.phys.HitResult; import org.lwjgl.opengl.GL11; import toufoumaster.btwaila.demo.DemoManager; import static toufoumaster.btwaila.gui.components.AdvancedInfoComponent.entityIconMap; -public class DropIconComponent extends MovableHudComponent { +public class DropIconComponent extends HudComponentMovable { public DropIconComponent(String key, Layout layout) { super(key, 18, 18, layout); } @@ -33,18 +34,21 @@ public boolean isVisible(Minecraft minecraft) { } @Override - public void render(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float partialTick) { + public void render(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float partialTick) { HitResult hitResult = minecraft.objectMouseOver; if (hitResult == null) {return;} if (hitResult.hitType == HitResult.HitType.TILE) { - Block block = Block.getBlock(minecraft.theWorld.getBlockId(hitResult.x, hitResult.y, hitResult.z)); - ItemStack[] drops = block.getBreakResult(minecraft.theWorld, EnumDropCause.PICK_BLOCK, hitResult.x, hitResult.y, hitResult.z, minecraft.theWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z), null); - ItemStack icon = block.getDefaultStack(); - if (drops != null && drops.length > 0){ - icon = drops[0]; + Block block = minecraft.currentWorld.getBlock(hitResult.x, hitResult.y, hitResult.z); + ItemStack[] drops = null; + if (block != null) { + drops = block.getBreakResult(minecraft.currentWorld, EnumDropCause.PICK_BLOCK, hitResult.x, hitResult.y, hitResult.z, minecraft.currentWorld.getBlockMetadata(hitResult.x, hitResult.y, hitResult.z), null); + ItemStack icon = block.getDefaultStack(); + if (drops != null && drops.length > 0){ + icon = drops[0]; + } + icon.stackSize = 1; + renderItemDisplayer(minecraft,icon, xScreenSize, yScreenSize); } - icon.stackSize = 1; - renderItemDisplayer(minecraft,icon, xScreenSize, yScreenSize); } else if (hitResult.hitType == HitResult.HitType.ENTITY) { ItemStack itemToRender = getEntityIcon(hitResult.entity); itemToRender.stackSize = 1; @@ -73,16 +77,16 @@ protected void renderItemDisplayer(Minecraft minecraft, ItemStack blockResult, i Tessellator t = Tessellator.instance; ItemModel model = ItemModelDispatcher.getInstance().getDispatch(blockResult); - model.renderItemIntoGui(t, minecraft.fontRenderer, minecraft.renderEngine, blockResult, x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1f, 1.0F); - model.renderItemOverlayIntoGUI(t, minecraft.fontRenderer, minecraft.renderEngine, blockResult, x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1f); + model.renderItemIntoGui(t, minecraft.font, minecraft.textureManager, blockResult, x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1f, 1.0F); + model.renderItemOverlayIntoGUI(t, minecraft.font, minecraft.textureManager, blockResult, x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1f); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_LIGHTING); Lighting.disable(); } public ItemStack getEntityIcon(Entity entity){ ItemStack icon = entityIconMap.get(entity.getClass()); - if (icon == null && entity instanceof EntityLiving){ - EntityLiving living = (EntityLiving)entity; + if (icon == null && entity instanceof Mob){ + Mob living = (Mob)entity; if (!living.mobDrops.isEmpty()){ WeightedRandomLootObject lootObject = living.mobDrops.get(0); icon = lootObject.getItemStack(); @@ -92,7 +96,7 @@ public ItemStack getEntityIcon(Entity entity){ if (icon != null){ return icon; } else { - return Item.eggChicken.getDefaultStack(); + return Items.EGG_CHICKEN.getDefaultStack(); } } } diff --git a/src/main/java/toufoumaster/btwaila/gui/components/HarvestInfoComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/HarvestInfoComponent.java index 6c0f163..18628d5 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/HarvestInfoComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/HarvestInfoComponent.java @@ -2,14 +2,14 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiHudDesigner; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.hud.ComponentAnchor; -import net.minecraft.client.gui.hud.Layout; -import net.minecraft.core.HitResult; +import net.minecraft.client.gui.ScreenHudDesigner; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.ComponentAnchor; +import net.minecraft.client.gui.hud.component.layout.Layout; import net.minecraft.core.block.Block; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.player.gamemode.Gamemode; +import net.minecraft.core.util.phys.HitResult; import toufoumaster.btwaila.demo.DemoManager; import toufoumaster.btwaila.mixin.mixins.accessors.IPlayerControllerAccessor; import toufoumaster.btwaila.util.Colors; @@ -22,11 +22,11 @@ public HarvestInfoComponent(String key, Layout layout) { } @Override public int getAnchorY(ComponentAnchor anchor) { - return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft(this))); + return (int)(anchor.yPosition * getYSize(Minecraft.getMinecraft())); } @Override public int getYSize(Minecraft mc) { - if (!(mc.currentScreen instanceof GuiHudDesigner) && !this.isVisible(mc)) { + if (!(mc.currentScreen instanceof ScreenHudDesigner) && !this.isVisible(mc)) { return 0; } return height(); @@ -37,14 +37,14 @@ public boolean isVisible(Minecraft minecraft) { } @Override - public void renderPost(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float f) { - EntityPlayer player = minecraft.thePlayer; + public void renderPost(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float f) { + Player player = minecraft.thePlayer; HitResult hitResult = minecraft.objectMouseOver; if (hitResult == null || player == null) { renderHarvestInfo(Colors.RED, "You shouldn't ever see this message."); return; } - Block block = Block.getBlock(minecraft.theWorld.getBlockId(hitResult.x, hitResult.y, hitResult.z)); + Block block = minecraft.currentWorld.getBlock(hitResult.x, hitResult.y, hitResult.z); if (player.getGamemode() == Gamemode.survival) { int miningLevelColor = Colors.LIGHT_GREEN; String harvestString = translator.translateKey("btwaila.component.harvest.info.harvestable"); diff --git a/src/main/java/toufoumaster/btwaila/gui/components/HarvestToolComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/HarvestToolComponent.java index f2d73f9..c44dd13 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/HarvestToolComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/HarvestToolComponent.java @@ -2,20 +2,22 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.hud.Layout; -import net.minecraft.client.gui.hud.MovableHudComponent; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.HudComponentMovable; +import net.minecraft.client.gui.hud.component.layout.Layout; import net.minecraft.client.render.item.model.ItemModel; import net.minecraft.client.render.item.model.ItemModelDispatcher; import net.minecraft.client.render.tessellator.Tessellator; -import net.minecraft.core.HitResult; import net.minecraft.core.block.Block; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import net.minecraft.core.player.gamemode.Gamemode; +import net.minecraft.core.util.phys.HitResult; import org.lwjgl.opengl.GL11; import toufoumaster.btwaila.demo.DemoManager; -public class HarvestToolComponent extends MovableHudComponent { + +public class HarvestToolComponent extends HudComponentMovable { public HarvestToolComponent(String key, Layout layout) { super(key, 18, 18, layout); } @@ -26,10 +28,10 @@ public boolean isVisible(Minecraft minecraft) { } @Override - public void render(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float f) { + public void render(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float f) { if (minecraft.objectMouseOver == null) return; if (minecraft.objectMouseOver.hitType != HitResult.HitType.TILE) return; - Block block = minecraft.theWorld.getBlock(minecraft.objectMouseOver.x, minecraft.objectMouseOver.y, minecraft.objectMouseOver.z); + Block block = minecraft.currentWorld.getBlock(minecraft.objectMouseOver.x, minecraft.objectMouseOver.y, minecraft.objectMouseOver.z); renderTool(minecraft, block, xScreenSize, yScreenSize); } @@ -44,18 +46,18 @@ protected void renderTool(Minecraft minecraft, Block block, int xScreenSize, int int x = getLayout().getComponentX(minecraft, this, xScreenSize); int y = getLayout().getComponentY(minecraft, this, yScreenSize); Item itemHarvestTool = null; - if (Item.toolPickaxeSteel.canHarvestBlock(minecraft.thePlayer, new ItemStack(block), block)) { - itemHarvestTool = Item.toolPickaxeSteel; - } else if (Item.toolShearsSteel.canHarvestBlock(minecraft.thePlayer,new ItemStack(block), block)) { - itemHarvestTool = Item.toolShearsSteel; - } else if (Item.toolAxeSteel.canHarvestBlock(minecraft.thePlayer,new ItemStack(block), block)) { - itemHarvestTool = Item.toolAxeSteel; - } else if (Item.toolSwordSteel.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { - itemHarvestTool = Item.toolSwordSteel; - } else if (Item.toolShovelSteel.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { - itemHarvestTool = Item.toolShovelSteel; - } else if (Item.toolHoeSteel.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { - itemHarvestTool = Item.toolHoeSteel; + if (Items.TOOL_PICKAXE_STEEL.canHarvestBlock(minecraft.thePlayer, new ItemStack(block), block)) { + itemHarvestTool = Items.TOOL_PICKAXE_STEEL; + } else if (Items.TOOL_SHEARS_STEEL.canHarvestBlock(minecraft.thePlayer,new ItemStack(block), block)) { + itemHarvestTool = Items.TOOL_SHEARS_STEEL; + } else if (Items.TOOL_AXE_STEEL.canHarvestBlock(minecraft.thePlayer,new ItemStack(block), block)) { + itemHarvestTool = Items.TOOL_AXE_STEEL; + } else if (Items.TOOL_SWORD_STEEL.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { + itemHarvestTool = Items.TOOL_SWORD_STEEL; + } else if (Items.TOOL_SHOVEL_STEEL.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { + itemHarvestTool = Items.TOOL_SHOVEL_STEEL; + } else if (Items.TOOL_HOE_STEEL.canHarvestBlock(minecraft.thePlayer,new ItemStack(block),block)) { + itemHarvestTool = Items.TOOL_HOE_STEEL; } if (itemHarvestTool == null) return; @@ -63,7 +65,7 @@ protected void renderTool(Minecraft minecraft, Block block, int xScreenSize, int Tessellator t = Tessellator.instance; ItemModel model = ItemModelDispatcher.getInstance().getDispatch(itemHarvestTool); - model.renderItemIntoGui(t, minecraft.fontRenderer, minecraft.renderEngine, itemHarvestTool.getDefaultStack(), x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1.0F); + model.renderItemIntoGui(t, minecraft.font, minecraft.textureManager, itemHarvestTool.getDefaultStack(), x + (getXSize(minecraft) - 16)/2, y + (getYSize(minecraft) - 16)/2, 1.0F); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_LIGHTING); } diff --git a/src/main/java/toufoumaster/btwaila/gui/components/WailaTextComponent.java b/src/main/java/toufoumaster/btwaila/gui/components/WailaTextComponent.java index d7fd9bf..b677ce7 100644 --- a/src/main/java/toufoumaster/btwaila/gui/components/WailaTextComponent.java +++ b/src/main/java/toufoumaster/btwaila/gui/components/WailaTextComponent.java @@ -1,36 +1,37 @@ package toufoumaster.btwaila.gui.components; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.player.EntityPlayerSP; +import net.minecraft.client.entity.player.PlayerLocal; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiHudDesigner; -import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.gui.ScreenHudDesigner; import net.minecraft.client.gui.guidebook.mobs.MobInfoRegistry; -import net.minecraft.client.gui.hud.Layout; -import net.minecraft.client.gui.hud.MovableHudComponent; +import net.minecraft.client.gui.hud.HudIngame; +import net.minecraft.client.gui.hud.component.HudComponentMovable; +import net.minecraft.client.gui.hud.component.layout.Layout; +import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryArmoredZombie; import net.minecraft.client.render.Lighting; -import net.minecraft.client.render.RenderEngine; -import net.minecraft.client.render.entity.ItemEntityRenderer; +import net.minecraft.client.render.TextureManager; +import net.minecraft.client.render.entity.EntityRendererItem; import net.minecraft.client.render.item.model.ItemModel; import net.minecraft.client.render.item.model.ItemModelDispatcher; -import net.minecraft.client.render.stitcher.IconCoordinate; import net.minecraft.client.render.tessellator.Tessellator; -import net.minecraft.core.block.Block; +import net.minecraft.client.render.texture.stitcher.IconCoordinate; +import net.minecraft.core.block.Blocks; import net.minecraft.core.entity.Entity; import net.minecraft.core.entity.EntityDispatcher; -import net.minecraft.core.entity.EntityLiving; import net.minecraft.core.entity.EntityPainting; +import net.minecraft.core.entity.Mob; import net.minecraft.core.entity.animal.*; import net.minecraft.core.entity.monster.*; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.entity.vehicle.EntityBoat; import net.minecraft.core.entity.vehicle.EntityMinecart; import net.minecraft.core.item.IItemConvertible; -import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; -import net.minecraft.core.player.inventory.IInventory; +import net.minecraft.core.item.Items; +import net.minecraft.core.player.inventory.container.Container; import net.minecraft.core.util.helper.MathHelper; -import net.minecraft.server.entity.player.EntityPlayerMP; +import net.minecraft.server.entity.player.PlayerServer; import org.lwjgl.opengl.GL11; import toufoumaster.btwaila.BTWailaClient; import toufoumaster.btwaila.mixin.interfaces.IOptions; @@ -46,33 +47,33 @@ import static toufoumaster.btwaila.BTWaila.translator; -public abstract class WailaTextComponent extends MovableHudComponent { - public static final ItemEntityRenderer itemRender = new ItemEntityRenderer(); +public abstract class WailaTextComponent extends HudComponentMovable { + public static EntityRendererItem itemRender = null; public static final HashMap, ItemStack> entityIconMap = new HashMap<>(); public static void init(){ - addEntityIcon(EntityPlayer.class, Item.flag); - addEntityIcon(EntityPlayerSP.class, Item.flag); - addEntityIcon(EntityPlayerMP.class, Item.flag); - addEntityIcon(EntityArmoredZombie.class, Item.chainlink); - addEntityIcon(EntityCreeper.class, Item.sulphur); - addEntityIcon(EntityGhast.class, Item.ammoFireball); - addEntityIcon(EntityPigZombie.class, Item.foodPorkchopCooked); - addEntityIcon(EntityPig.class, Item.foodPorkchopRaw); - addEntityIcon(EntityScorpion.class, Item.string); - addEntityIcon(EntitySpider.class, Item.string); - addEntityIcon(EntitySkeleton.class, Item.bone); - addEntityIcon(EntitySlime.class, Item.slimeball); - addEntityIcon(EntitySnowman.class, Item.ammoSnowball); - addEntityIcon(EntityZombie.class, Item.cloth); - addEntityIcon(EntityChicken.class, Item.featherChicken); - addEntityIcon(EntityCow.class, Item.leather); - addEntityIcon(EntityPainting.class, Item.painting); - addEntityIcon(EntitySheep.class, Block.wool); - addEntityIcon(EntitySquid.class, Item.dye); - addEntityIcon(EntityWolf.class, Item.bone); - addEntityIcon(EntityMinecart.class, Item.minecart); - addEntityIcon(EntityBoat.class, Item.boat); + addEntityIcon(Player.class, Items.FLAG); + addEntityIcon(PlayerLocal.class, Items.FLAG); + //addEntityIcon(PlayerServer.class, Items.FLAG); + addEntityIcon(MobZombieArmored.class, Items.CHAINLINK); + addEntityIcon(MobCreeper.class, Items.SULPHUR); + addEntityIcon(MobGhast.class, Items.AMMO_FIREBALL); + addEntityIcon(MobZombiePig.class, Items.FOOD_PORKCHOP_COOKED); + addEntityIcon(MobPig.class, Items.FOOD_PORKCHOP_RAW); + addEntityIcon(MobScorpion.class, Items.STRING); + addEntityIcon(MobSpider.class, Items.STRING); + addEntityIcon(MobSkeleton.class, Items.BONE); + addEntityIcon(MobSlime.class, Items.SLIMEBALL); + addEntityIcon(MobSnowman.class, Items.AMMO_SNOWBALL); + addEntityIcon(MobZombie.class, Items.CLOTH); + addEntityIcon(MobChicken.class, Items.FEATHER_CHICKEN); + addEntityIcon(MobCow.class, Items.LEATHER); + addEntityIcon(EntityPainting.class, Items.PAINTING); + addEntityIcon(MobSheep.class, Blocks.WOOL); + addEntityIcon(MobSquid.class, Items.DYE); + addEntityIcon(MobWolf.class, Items.BONE); + addEntityIcon(EntityMinecart.class, Items.MINECART); + addEntityIcon(EntityBoat.class, Items.BOAT); } public static void addEntityIcon(Class entityClass, IItemConvertible displayItem){ @@ -87,7 +88,7 @@ public static void addEntityIcon(Class entityClass, ItemStack protected int offY = padding; protected int posX = 0; protected float scale = 1f; - public Minecraft minecraft = Minecraft.getMinecraft(Minecraft.class); + public Minecraft minecraft = Minecraft.getMinecraft(); public IOptions modSettings(){ return BTWailaClient.modSettings; } @@ -104,15 +105,15 @@ public WailaTextComponent(String key, int ySize, Layout layout) { public int getXSize(Minecraft mc) { return componentTextWidth; } - public void render(Minecraft minecraft, GuiIngame guiIngame, int xScreenSize, int yScreenSize, float partialTick){ + public void render(Minecraft minecraft, HudIngame HudIngame, int xScreenSize, int yScreenSize, float partialTick){ this.minecraft = minecraft; - this.activeGUI = guiIngame; + this.activeGUI = HudIngame; this.xScreenSize = xScreenSize; this.yScreenSize = yScreenSize; - if (minecraft.currentScreen instanceof GuiHudDesigner) return; // Fixes weird placement issues while editing HUD in world + if (minecraft.currentScreen instanceof ScreenHudDesigner) return; // Fixes weird placement issues while editing HUD in world startY = offY = generateOriginalPosY(); posX = generateOriginalPosX(); - renderPost(minecraft, guiIngame, xScreenSize, yScreenSize, partialTick); + renderPost(minecraft, HudIngame, xScreenSize, yScreenSize, partialTick); } public void renderPreview(Minecraft minecraft, Gui gui, Layout layout, int xScreenSize, int yScreenSize){ @@ -130,7 +131,7 @@ public int getLineHeight(){ public int height(){ return offY - startY; } - public abstract void renderPost(Minecraft minecraft, GuiIngame guiIngame, int i, int j, float f); + public abstract void renderPost(Minecraft minecraft, HudIngame HudIngame, int i, int j, float f); public abstract void renderPreviewPost(Minecraft minecraft, Gui gui, Layout layout, int i, int j); public Minecraft getGame() { @@ -162,8 +163,8 @@ public int generateOriginalPosX() { } public void drawStringWithShadow(String text, int offX, int color) { - int width = minecraft.fontRenderer.getStringWidth(text); - minecraft.fontRenderer.drawStringWithShadow(text, posX+offX + getStartingX(width), offY, color); + int width = minecraft.font.getStringWidth(text); + minecraft.font.drawStringWithShadow(text, posX+offX + getStartingX(width), offY, color); addOffY(getLineHeight()); } public int getStartingX(int width){ @@ -197,7 +198,7 @@ public void drawStringJustified(String text, int offX, int maxWidth, int color){ prevline = new StringBuilder(line.toString()); line.append(word).append(" "); wordCount++; - if (minecraft.fontRenderer.getStringWidth(line.toString().trim()) > maxWidth){ + if (minecraft.font.getStringWidth(line.toString().trim()) > maxWidth){ if (wordCount <= 1){ drawStringWithShadow(line.toString(), offX, color); line = new StringBuilder(word).append(" "); @@ -218,7 +219,7 @@ public void drawStringCentered(String text){ drawStringCentered(text, Colors.WHITE); } public void drawStringCentered(String text, int color){ - minecraft.fontRenderer.drawCenteredString(text, posX + (componentTextWidth/2), offY, color); + minecraft.font.drawCenteredString(text, posX + (componentTextWidth/2), offY, color); addOffY(getLineHeight()); } @@ -229,7 +230,7 @@ public void drawTextureRectRepeat(int x, int y, int w, int h, int texX, int texY float b = (float)(color & 0xFF) / 255.0f; GL11.glColor4f(r, g, b, 1f); GL11.glEnable(GL11.GL_SCISSOR_TEST); - GL11.glScissor(0, minecraft.resolution.height - h * minecraft.resolution.scale, w * minecraft.resolution.scale, minecraft.resolution.height); + GL11.glScissor(0, minecraft.resolution.getWidthScreenCoords() - h * minecraft.resolution.getScale(), w * minecraft.resolution.getScale(), minecraft.resolution.getHeightScreenCoords()); for (int i = x; i < w; i += tileWidth) { for (int j = y; j < h; j += tileWidth) { @@ -245,7 +246,7 @@ public void drawIcon(double x, double y, double w, double h, IconCoordinate coor float b = (float)(color & 0xFF) / 255.0f; GL11.glColor4f(r, g, b, 1f); - coordinate.parentAtlas.bindTexture(); + coordinate.parentAtlas.bind(); double minU = coordinate.getIconUMin(); double maxU = coordinate.getIconUMax(); @@ -255,9 +256,9 @@ public void drawIcon(double x, double y, double w, double h, IconCoordinate coor GL11.glEnable(GL11.GL_SCISSOR_TEST); GL11.glScissor( 0, - MathHelper.floor_double(minecraft.resolution.height - h * minecraft.resolution.scale), - MathHelper.floor_double(w * minecraft.resolution.scale), - minecraft.resolution.height); + MathHelper.floor(minecraft.resolution.getHeightScreenCoords() - h * minecraft.resolution.getScale()), + MathHelper.floor(w * minecraft.resolution.getScale()), + minecraft.resolution.getHeightScreenCoords()); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); @@ -320,12 +321,12 @@ public void drawProgressBar(int value, int max, int boxWidth, ColorOptions bgOpt GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glEnable(GL11.GL_BLEND); GL11.glColor4f(1, 1, 1, 1); - RenderEngine renderEngine = minecraft.renderEngine; + TextureManager textureManager = minecraft.textureManager; String style = modSettings().bTWaila$getBarStyle().value.name(); - renderEngine.bindTexture(renderEngine.getTexture("/assets/btwaila/gui/progressBg_" + style + ".png")); + textureManager.bindTexture(textureManager.loadTexture("/assets/btwaila/gui/progressBg_" + style + ".png")); drawTexturedModalRect(posX + offX, offY, boxWidth, sizeY, 1.f); if (progress > 0) { - renderEngine.bindTexture(renderEngine.getTexture("/assets/btwaila/gui/progressOverlay_" + style + ".png")); + textureManager.bindTexture(textureManager.loadTexture("/assets/btwaila/gui/progressOverlay_" + style + ".png")); drawTexturedModalRect(posX + offX, offY, progress, sizeY, ratio); } GL11.glDisable(GL11.GL_BLEND); @@ -350,9 +351,9 @@ public void drawProgressBarTexture(int value, int max, int boxWidth, TextureOpti public void drawProgressBarWithText(int value, int max, ProgressBarOptions options, int offX) { int stringPadding = 5; - int stringWidth = minecraft.fontRenderer.getStringWidth(generateTemplateString(options.text, max, options.values, options.percentage)); + int stringWidth = minecraft.font.getStringWidth(generateTemplateString(options.text, max, options.values, options.percentage)); String toDrawText = generateProgressBarString(options.text, value, max, options.values, options.percentage); - int textWidthDif = stringWidth - minecraft.fontRenderer.getStringWidth(toDrawText); + int textWidthDif = stringWidth - minecraft.font.getStringWidth(toDrawText); int width = options.boxWidth; if (width == 0) { width = stringWidth + stringPadding * 2; @@ -368,9 +369,9 @@ public void drawProgressBarWithText(int value, int max, ProgressBarOptions optio public void drawProgressBarTextureWithText(int value, int max, ProgressBarOptions options, int offX) { int stringPadding = 5; - int stringWidth = minecraft.fontRenderer.getStringWidth(generateTemplateString(options.text, max, options.values, options.percentage)); + int stringWidth = minecraft.font.getStringWidth(generateTemplateString(options.text, max, options.values, options.percentage)); String toDrawText = generateProgressBarString(options.text, value, max, options.values, options.percentage); - int textWidthDif = stringWidth - minecraft.fontRenderer.getStringWidth(toDrawText); + int textWidthDif = stringWidth - minecraft.font.getStringWidth(toDrawText); int width = options.boxWidth; if (width == 0) { width = stringWidth + stringPadding * 2; @@ -384,10 +385,10 @@ public void drawProgressBarTextureWithText(int value, int max, ProgressBarOption addOffY(4); } - public void drawInfiniteStackSizeInventory(IInventory inventory, int offX) { + public void drawInfiniteStackSizeInventory(Container inventory, int offX) { HashMap itemList = new HashMap<>(); - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack itemStack = inventory.getStackInSlot(i); + for (int i = 0; i < inventory.getContainerSize(); i++) { + ItemStack itemStack = inventory.getItem(i); if(itemStack != null){ int itemId = itemStack.getItem().id; int stackSize = itemStack.stackSize; @@ -417,8 +418,8 @@ public void drawItemList(ItemStack[] itemList, int offX) { for (ItemStack itemStack : itemList) { if (itemStack != null) { ItemModel model = ItemModelDispatcher.getInstance().getDispatch(itemStack); - model.renderItemIntoGui(t, minecraft.fontRenderer, minecraft.renderEngine, itemStack, posX + offX + itemX * 16, offY + itemY * 16, 1.0F); - model.renderItemOverlayIntoGUI(t, minecraft.fontRenderer, minecraft.renderEngine, itemStack, posX + offX + itemX * 16, offY + itemY * 16, 1.0F); + model.renderItemIntoGui(t, minecraft.font, minecraft.textureManager, itemStack, posX + offX + itemX * 16, offY + itemY * 16, 1.0F); + model.renderItemOverlayIntoGUI(t, minecraft.font, minecraft.textureManager, itemStack, posX + offX + itemX * 16, offY + itemY * 16, 1.0F); itemX++; if (itemX >= 9) { itemX = 0; @@ -432,7 +433,7 @@ public void drawItemList(ItemStack[] itemList, int offX) { Lighting.disable(); } - public void drawInventory(IInventory inventory, int offX) { + public void drawInventory(Container inventory, int offX) { Lighting.enableInventoryLight(); GL11.glEnable(32826); @@ -441,10 +442,10 @@ public void drawInventory(IInventory inventory, int offX) { int invArea = invHeight * invWidth; final int maxLength = 16; float iconLength; - if (inventory.getSizeInventory() < 1){ + if (inventory.getContainerSize() < 1){ iconLength = maxLength; } else { - iconLength = (float) Math.sqrt(((double) invArea) /inventory.getSizeInventory()); + iconLength = (float) Math.sqrt(((double) invArea) /inventory.getContainerSize()); } iconLength = Math.min(maxLength, iconLength); // Min is correct, the intent is to cap the size at 16 iconLength = Math.max(iconLength, 1); @@ -458,14 +459,14 @@ public void drawInventory(IInventory inventory, int offX) { int itemX = 0; int itemY = 0; GL11.glEnable(GL11.GL_DEPTH_TEST); - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack itemStack = inventory.getStackInSlot(i); + for (int i = 0; i < inventory.getContainerSize(); i++) { + ItemStack itemStack = inventory.getItem(i); if (itemStack != null) { int renderX = (int) ((posX + offX + itemX * iconLength) /scale); int renderY = (int) ((offY + itemY * iconLength)/scale); ItemModel model = ItemModelDispatcher.getInstance().getDispatch(itemStack); - model.renderItemIntoGui(t, minecraft.fontRenderer, minecraft.renderEngine, itemStack, renderX, renderY, 1.0F); - model.renderItemOverlayIntoGUI(t, minecraft.fontRenderer, minecraft.renderEngine, itemStack, renderX, renderY, 1.0F); + model.renderItemIntoGui(t, minecraft.font, minecraft.textureManager, itemStack, renderX, renderY, 1.0F); + model.renderItemOverlayIntoGUI(t, minecraft.font, minecraft.textureManager, itemStack, renderX, renderY, 1.0F); itemX++; if (itemX >= itemsWide) { itemX = 0; @@ -483,12 +484,12 @@ public void drawInventory(IInventory inventory, int offX) { Lighting.disable(); } - protected void drawEntityHealth(EntityLiving entity) { + protected void drawEntityHealth(Mob entity) { Random rand = new Random(); Lighting.disable(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - minecraft.renderEngine.bindTexture(minecraft.renderEngine.getTexture("/gui/icons.png")); + minecraft.textureManager.bindTexture(minecraft.textureManager.loadTexture("/gui/icons.png")); boolean heartsFlash; heartsFlash = entity.heartsFlashTime / 3 % 2 == 1; @@ -613,7 +614,8 @@ protected void drawRect(int minX, int minY, int maxX, int maxY, int argb) { GL11.glDisable(3042); } - public ItemEntityRenderer getItemRenderer(){ + public EntityRendererItem getItemRenderer(){ + if (itemRender == null) itemRender = new EntityRendererItem(); return itemRender; } @@ -621,14 +623,14 @@ public static String getEntityName(Entity entity){ if (entity == null){ return translator.translateKey("btwaila.tooltip.general.entity.null"); } - String entityName = entity instanceof EntityLiving ? ((EntityLiving)entity).getDisplayName() : null; + String entityName = entity instanceof Mob ? ((Mob)entity).getDisplayName() : null; if (entityName == null || entityName.equalsIgnoreCase("§0")) { MobInfoRegistry.MobInfo info = MobInfoRegistry.getMobInfo(entity.getClass()); if (info != null){ entityName = translator.translateKey(info.getNameTranslationKey()); } else { - entityName = EntityDispatcher.classToKeyMap.get(entity.getClass()); + entityName = EntityDispatcher.classToIdMap.get(entity.getClass()).toString(); } } diff --git a/src/main/java/toufoumaster/btwaila/mixin/interfaces/IOptions.java b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IOptions.java index 0114c53..faf055c 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/interfaces/IOptions.java +++ b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IOptions.java @@ -1,25 +1,25 @@ package toufoumaster.btwaila.mixin.interfaces; -import net.minecraft.client.option.BooleanOption; -import net.minecraft.client.option.EnumOption; -import net.minecraft.client.option.FloatOption; +import net.minecraft.client.option.OptionBoolean; +import net.minecraft.client.option.OptionEnum; +import net.minecraft.client.option.OptionFloat; import net.minecraft.client.option.KeyBinding; -import net.minecraft.client.option.RangeOption; +import net.minecraft.client.option.OptionRange; import toufoumaster.btwaila.util.BarStyle; import toufoumaster.btwaila.util.TooltipFormatting; public interface IOptions { - BooleanOption bTWaila$getBlockTooltips(); - BooleanOption bTWaila$getBlockAdvancedTooltips(); - BooleanOption bTWaila$getEntityTooltips(); - BooleanOption bTWaila$getEntityAdvancedTooltips(); - RangeOption bTWaila$getSmallEntityHealthBar(); - BooleanOption bTWaila$getShowBlockId(); - BooleanOption bTWaila$getShowBlockDesc(); - BooleanOption bTWaila$getShowHarvestText(); - FloatOption bTWaila$getScaleTooltips(); - EnumOption bTWaila$getTooltipFormatting(); - EnumOption bTWaila$getBarStyle(); + OptionBoolean bTWaila$getBlockTooltips(); + OptionBoolean bTWaila$getBlockAdvancedTooltips(); + OptionBoolean bTWaila$getEntityTooltips(); + OptionBoolean bTWaila$getEntityAdvancedTooltips(); + OptionRange bTWaila$getSmallEntityHealthBar(); + OptionBoolean bTWaila$getShowBlockId(); + OptionBoolean bTWaila$getShowBlockDesc(); + OptionBoolean bTWaila$getShowHarvestText(); + OptionFloat bTWaila$getScaleTooltips(); + OptionEnum bTWaila$getTooltipFormatting(); + OptionEnum bTWaila$getBarStyle(); KeyBinding bTWaila$getKeyOpenBTWailaMenu(); KeyBinding bTWaila$getKeyDemoCycle(); } diff --git a/src/main/java/toufoumaster/btwaila/mixin/interfaces/INetClientHandler.java b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerClient.java similarity index 81% rename from src/main/java/toufoumaster/btwaila/mixin/interfaces/INetClientHandler.java rename to src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerClient.java index a82ff5e..2108bee 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/interfaces/INetClientHandler.java +++ b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerClient.java @@ -3,6 +3,6 @@ import toufoumaster.btwaila.network.packet.PacketEntityData; -public interface INetClientHandler { +public interface IPacketHandlerClient { void bTWaila$handleEntityData(PacketEntityData packet); } \ No newline at end of file diff --git a/src/main/java/toufoumaster/btwaila/mixin/interfaces/INetServerHandler.java b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerServer.java similarity index 89% rename from src/main/java/toufoumaster/btwaila/mixin/interfaces/INetServerHandler.java rename to src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerServer.java index 26c7f5b..0d8dbc0 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/interfaces/INetServerHandler.java +++ b/src/main/java/toufoumaster/btwaila/mixin/interfaces/IPacketHandlerServer.java @@ -4,7 +4,7 @@ import toufoumaster.btwaila.network.packet.PacketRequestEntityData; import toufoumaster.btwaila.network.packet.PacketRequestTileEntityData; -public interface INetServerHandler { +public interface IPacketHandlerServer { void bTWaila$handleRequestTileEntityData(PacketRequestTileEntityData packet); void bTWaila$handleRequestEntityData(PacketRequestEntityData packet); } \ No newline at end of file diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/GameSettingsMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/GameSettingsMixin.java index 2afd6b7..c1e00b4 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/GameSettingsMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/GameSettingsMixin.java @@ -1,13 +1,7 @@ package toufoumaster.btwaila.mixin.mixins; import net.minecraft.client.input.InputDevice; -import net.minecraft.client.option.BooleanOption; -import net.minecraft.client.option.EnumOption; -import net.minecraft.client.option.FloatOption; -import net.minecraft.client.option.GameSettings; -import net.minecraft.client.option.KeyBinding; -import net.minecraft.client.option.Option; -import net.minecraft.client.option.RangeOption; +import net.minecraft.client.option.*; import net.minecraft.core.lang.I18n; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -30,53 +24,53 @@ public class GameSettingsMixin implements IOptions { @Unique public final KeyBinding keyDemoCycle = new KeyBinding("btwaila.key.democycle").bind(InputDevice.keyboard, KEY_F9); @Unique - public final BooleanOption blockTooltips = new BooleanOption(thisAs, "blockTooltips", true); + public final OptionBoolean blockTooltips = new OptionBoolean(thisAs, "blockTooltips", true); @Unique - public final BooleanOption blockAdvancedTooltips = new BooleanOption(thisAs, "blockAdvancedTooltips", true); + public final OptionBoolean blockAdvancedTooltips = new OptionBoolean(thisAs, "blockAdvancedTooltips", true); @Unique - public final BooleanOption entityTooltips = new BooleanOption(thisAs, "entityTooltips", true); + public final OptionBoolean entityTooltips = new OptionBoolean(thisAs, "entityTooltips", true); @Unique - public final BooleanOption entityAdvancedTooltips = new BooleanOption(thisAs, "entityAdvancedTooltips", true); + public final OptionBoolean entityAdvancedTooltips = new OptionBoolean(thisAs, "entityAdvancedTooltips", true); @Unique - public final RangeOption smallEntityHealthBar = new RangeOption(thisAs, "smallHealthBar", 0, 6); + public final OptionRange smallEntityHealthBar = new OptionRange(thisAs, "smallHealthBar", 0, 6); @Unique - public final BooleanOption showBlockId = new BooleanOption(thisAs, "showBlockId", false); + public final OptionBoolean showBlockId = new OptionBoolean(thisAs, "showBlockId", false); @Unique - public final BooleanOption showBlockDescriptions = new BooleanOption(thisAs, "showBlockDesc", true); + public final OptionBoolean showBlockDescriptions = new OptionBoolean(thisAs, "showBlockDesc", true); @Unique - public final BooleanOption showHarvestText = new BooleanOption(thisAs, "showHarvestText", true); + public final OptionBoolean showHarvestText = new OptionBoolean(thisAs, "showHarvestText", true); @Unique - public final EnumOption tooltipFormatting = new EnumOption<>(thisAs, "tooltipFormatting",TooltipFormatting.class,TooltipFormatting.LEFT); + public final OptionEnum tooltipFormatting = new OptionEnum<>(thisAs, "tooltipFormatting",TooltipFormatting.class,TooltipFormatting.LEFT); @Unique - public final EnumOption barStyle = new EnumOption<>(thisAs, "barStyle", BarStyle.class, BarStyle.PLAIN); + public final OptionEnum barStyle = new OptionEnum<>(thisAs, "barStyle", BarStyle.class, BarStyle.PLAIN); @Unique - public final FloatOption scaleTooltips = new FloatOption(thisAs, "scaleTooltips", 0.5f); + public final OptionFloat scaleTooltips = new OptionFloat(thisAs, "scaleTooltips", 0.5f); public KeyBinding bTWaila$getKeyOpenBTWailaMenu() { return keyOpenBTWailaMenu; } public KeyBinding bTWaila$getKeyDemoCycle() {return keyDemoCycle;} - public BooleanOption bTWaila$getBlockTooltips() { + public OptionBoolean bTWaila$getBlockTooltips() { return blockTooltips; } - public BooleanOption bTWaila$getBlockAdvancedTooltips() { + public OptionBoolean bTWaila$getBlockAdvancedTooltips() { return blockAdvancedTooltips; } - public BooleanOption bTWaila$getEntityTooltips() { + public OptionBoolean bTWaila$getEntityTooltips() { return entityTooltips; } - public BooleanOption bTWaila$getEntityAdvancedTooltips() { + public OptionBoolean bTWaila$getEntityAdvancedTooltips() { return entityAdvancedTooltips; } - public RangeOption bTWaila$getSmallEntityHealthBar() { + public OptionRange bTWaila$getSmallEntityHealthBar() { return smallEntityHealthBar; } - public BooleanOption bTWaila$getShowBlockId() {return showBlockId;} - public BooleanOption bTWaila$getShowBlockDesc() {return showBlockDescriptions;} - public BooleanOption bTWaila$getShowHarvestText() {return showHarvestText;} - public EnumOption bTWaila$getTooltipFormatting() {return tooltipFormatting;} - public EnumOption bTWaila$getBarStyle() {return barStyle;} - public FloatOption bTWaila$getScaleTooltips() {return scaleTooltips;} + public OptionBoolean bTWaila$getShowBlockId() {return showBlockId;} + public OptionBoolean bTWaila$getShowBlockDesc() {return showBlockDescriptions;} + public OptionBoolean bTWaila$getShowHarvestText() {return showHarvestText;} + public OptionEnum bTWaila$getTooltipFormatting() {return tooltipFormatting;} + public OptionEnum bTWaila$getBarStyle() {return barStyle;} + public OptionFloat bTWaila$getScaleTooltips() {return scaleTooltips;} @Inject(method = "getDisplayString(Lnet/minecraft/client/option/Option;)Ljava/lang/String;", at = @At("HEAD"), cancellable = true) private void displayStrings(Option option, CallbackInfoReturnable cir){ I18n translator = I18n.getInstance(); diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/HudIngameMixin.java similarity index 78% rename from src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMixin.java rename to src/main/java/toufoumaster/btwaila/mixin/mixins/HudIngameMixin.java index c15cb42..4d9bb96 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/HudIngameMixin.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.gui.hud.HudIngame; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -11,14 +11,14 @@ import toufoumaster.btwaila.BTWailaClient; import toufoumaster.btwaila.mixin.interfaces.IOptions; -@Mixin(value = GuiIngame.class, remap = false) -public class GuiIngameMixin extends Gui { +@Mixin(value = HudIngame.class, remap = false) +public class HudIngameMixin extends Gui { @Shadow protected Minecraft mc; @Inject( method = "updateTick", at = @At("TAIL")) public void updateTick(CallbackInfo ci) { if (((IOptions)this.mc.gameSettings).bTWaila$getKeyOpenBTWailaMenu().isPressed() && this.mc.currentScreen == null) { - this.mc.displayGuiScreen(BTWailaClient.getOptionsPage(null)); + this.mc.displayScreen(BTWailaClient.getOptionsPage(null)); } } } diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetLoginHandlerMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/NetLoginHandlerMixin.java index 146fcc2..efd42c9 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetLoginHandlerMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/NetLoginHandlerMixin.java @@ -1,9 +1,8 @@ package toufoumaster.btwaila.mixin.mixins; import net.minecraft.core.net.NetworkManager; -import net.minecraft.core.net.packet.Packet1Login; -import net.minecraft.core.net.packet.Packet3Chat; -import net.minecraft.server.net.handler.NetLoginHandler; +import net.minecraft.core.net.packet.PacketLogin; +import net.minecraft.server.net.handler.PacketHandlerLogin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -12,7 +11,7 @@ import toufoumaster.btwaila.BTWaila; @Mixin( - value = NetLoginHandler.class, + value = PacketHandlerLogin.class, remap = false ) public class NetLoginHandlerMixin { @@ -20,7 +19,7 @@ public class NetLoginHandlerMixin { @Shadow public NetworkManager netManager; @Inject( method = "doLogin", at = @At("HEAD")) - public void doLogin(Packet1Login packet1login, CallbackInfo ci) { + public void doLogin(PacketLogin packet1login, CallbackInfo ci) { this.netManager.addToSendQueue(BTWaila.modVersion.getPacket()); } } diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetClientHandlerMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerClientMixin.java similarity index 61% rename from src/main/java/toufoumaster/btwaila/mixin/mixins/NetClientHandlerMixin.java rename to src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerClientMixin.java index e3eae4a..0b73b15 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetClientHandlerMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerClientMixin.java @@ -1,30 +1,28 @@ package toufoumaster.btwaila.mixin.mixins; -import net.minecraft.client.net.handler.NetClientHandler; +import net.minecraft.client.net.handler.PacketHandlerClient; import net.minecraft.core.entity.Entity; -import net.minecraft.core.entity.EntityLiving; -import net.minecraft.core.net.packet.Packet250CustomPayload; -import net.minecraft.core.net.packet.Packet3Chat; +import net.minecraft.core.entity.Mob; +import net.minecraft.core.net.packet.PacketCustomPayload; 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 toufoumaster.btwaila.BTWaila; -import toufoumaster.btwaila.mixin.interfaces.INetClientHandler; +import toufoumaster.btwaila.mixin.interfaces.IPacketHandlerClient; import toufoumaster.btwaila.network.packet.PacketEntityData; import toufoumaster.btwaila.util.VersionHelper; -@Mixin(value = NetClientHandler.class, remap = false) -public abstract class NetClientHandlerMixin implements INetClientHandler { +@Mixin(value = PacketHandlerClient.class, remap = false) +public abstract class PacketHandlerClientMixin implements IPacketHandlerClient { @Shadow protected abstract Entity getEntityByID(int i); @Override public void bTWaila$handleEntityData(PacketEntityData packet) { Entity entity = getEntityByID(packet.id); if (entity != null) { - if (entity instanceof EntityLiving){ - byte skinVar = (byte) ((EntityLiving) entity).getSkinVariant(); + if (entity instanceof Mob){ + byte skinVar = (byte) ((Mob) entity).getSkinVariant(); packet.tag.putByte("SkinVariant", skinVar); } entity.readAdditionalSaveData(packet.tag); @@ -32,7 +30,7 @@ public abstract class NetClientHandlerMixin implements INetClientHandler { } @Inject( method = "handleCustomPayload", at = @At("HEAD"), cancellable = true) - public void BTWaila$handleCustomPayload(Packet250CustomPayload packet, CallbackInfo ci){ + public void BTWaila$handleCustomPayload(PacketCustomPayload packet, CallbackInfo ci){ if (packet.channel.equals("BTWaila|VersionCheck")){ VersionHelper.handlePacket(packet); ci.cancel(); diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetServerHandlerMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerServerMixin.java similarity index 72% rename from src/main/java/toufoumaster/btwaila/mixin/mixins/NetServerHandlerMixin.java rename to src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerServerMixin.java index dbc5983..630f93d 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/NetServerHandlerMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/PacketHandlerServerMixin.java @@ -1,32 +1,32 @@ package toufoumaster.btwaila.mixin.mixins; -import com.mojang.nbt.CompoundTag; +import com.mojang.nbt.tags.CompoundTag; import net.minecraft.core.block.entity.TileEntity; import net.minecraft.core.entity.Entity; -import net.minecraft.core.net.packet.Packet140TileEntityData; +import net.minecraft.core.net.packet.PacketTileEntityData; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.entity.player.EntityPlayerMP; -import net.minecraft.server.net.handler.NetServerHandler; +import net.minecraft.server.entity.player.PlayerServer; +import net.minecraft.server.net.handler.PacketHandlerServer; import net.minecraft.server.world.WorldServer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import toufoumaster.btwaila.mixin.interfaces.INetServerHandler; +import toufoumaster.btwaila.mixin.interfaces.IPacketHandlerServer; import toufoumaster.btwaila.network.packet.PacketEntityData; import toufoumaster.btwaila.network.packet.PacketRequestEntityData; import toufoumaster.btwaila.network.packet.PacketRequestTileEntityData; -@Mixin(value = NetServerHandler.class, remap = false) -public class NetServerHandlerMixin implements INetServerHandler { - @Shadow private EntityPlayerMP playerEntity; +@Mixin(value = PacketHandlerServer.class, remap = false) +public class PacketHandlerServerMixin implements IPacketHandlerServer { + @Shadow private PlayerServer playerEntity; //TODO: Future update need to send tileEntity data only once the data is different. @Override public void bTWaila$handleRequestTileEntityData(PacketRequestTileEntityData packet) { MinecraftServer server = MinecraftServer.getInstance(); WorldServer worldserver = server.getDimensionWorld(this.playerEntity.dimension); - TileEntity tileEntity = worldserver.getBlockTileEntity(packet.x, packet.y, packet.z); + TileEntity tileEntity = worldserver.getTileEntity(packet.x, packet.y, packet.z); if (tileEntity != null) { - Packet140TileEntityData newPacket = new Packet140TileEntityData(tileEntity); + PacketTileEntityData newPacket = new PacketTileEntityData(tileEntity); this.playerEntity.playerNetServerHandler.sendPacket(newPacket); } } diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMenuMixin.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/ScreenPauseMixin.java similarity index 56% rename from src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMenuMixin.java rename to src/main/java/toufoumaster/btwaila/mixin/mixins/ScreenPauseMixin.java index d3116db..9aa327b 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/GuiIngameMenuMixin.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/ScreenPauseMixin.java @@ -1,17 +1,17 @@ package toufoumaster.btwaila.mixin.mixins; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiIngameMenu; +import net.minecraft.client.gui.ButtonElement; +import net.minecraft.client.gui.ScreenPause; 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 toufoumaster.btwaila.BTWaila; -@Mixin(value = GuiIngameMenu.class, remap = false) -public class GuiIngameMenuMixin { - @Inject( method = "buttonPressed", at = @At("HEAD")) - public void buttonPressed(GuiButton guibutton, CallbackInfo ci) { +@Mixin(value = ScreenPause.class, remap = false) +public class ScreenPauseMixin { + @Inject( method = "buttonClicked", at = @At("HEAD")) + public void buttonPressed(ButtonElement guibutton, CallbackInfo ci) { if (guibutton.id == 1) { BTWaila.canUseAdvancedTooltips = false; } diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/PacketAccessor.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/PacketAccessor.java index b8f3a98..c8cde79 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/PacketAccessor.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/PacketAccessor.java @@ -6,8 +6,8 @@ @Mixin(value = Packet.class, remap = false) public interface PacketAccessor { - @Invoker("addIdClassMapping") - static void callAddIdClassMapping(int id, boolean isClientPacket, boolean isServerPacket, Class packetClass) { + @Invoker("addMapping") + static void callAddMapping(int id, boolean isClientPacket, boolean isServerPacket, Class packetClass) { throw new UnsupportedOperationException(); } } diff --git a/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/TileEntitySignAccessor.java b/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/TileEntitySignAccessor.java index f2e7891..260d00c 100644 --- a/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/TileEntitySignAccessor.java +++ b/src/main/java/toufoumaster/btwaila/mixin/mixins/accessors/TileEntitySignAccessor.java @@ -4,8 +4,10 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; +import java.util.UUID; + @Mixin(value = TileEntitySign.class, remap = false) public interface TileEntitySignAccessor { @Accessor - String getOwner(); + UUID getOwner(); } diff --git a/src/main/java/toufoumaster/btwaila/network/packet/PacketEntityData.java b/src/main/java/toufoumaster/btwaila/network/packet/PacketEntityData.java index b9ddb79..a2c7f1b 100644 --- a/src/main/java/toufoumaster/btwaila/network/packet/PacketEntityData.java +++ b/src/main/java/toufoumaster/btwaila/network/packet/PacketEntityData.java @@ -1,9 +1,9 @@ package toufoumaster.btwaila.network.packet; -import com.mojang.nbt.CompoundTag; -import net.minecraft.core.net.handler.NetHandler; +import com.mojang.nbt.tags.CompoundTag; +import net.minecraft.core.net.handler.PacketHandler; import net.minecraft.core.net.packet.Packet; -import toufoumaster.btwaila.mixin.interfaces.INetClientHandler; +import toufoumaster.btwaila.mixin.interfaces.IPacketHandlerClient; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -17,31 +17,31 @@ public PacketEntityData() { this.isChunkDataPacket = true; } - public PacketEntityData(int id, CompoundTag tag) { - this(); - this.id = id; - this.tag = tag; - } - @Override - public void readPacketData(DataInputStream dis) throws IOException { + public void read(DataInputStream dis) throws IOException { this.id = dis.readInt(); this.tag = readCompressedCompoundTag(dis); } @Override - public void writePacketData(DataOutputStream dos) throws IOException { + public void write(DataOutputStream dos) throws IOException { dos.writeInt(this.id); writeCompressedCompoundTag(this.tag, dos); } @Override - public void processPacket(NetHandler netHandler) { - ((INetClientHandler)netHandler).bTWaila$handleEntityData(this); + public void handlePacket(PacketHandler packetHandler) { + ((IPacketHandlerClient)packetHandler).bTWaila$handleEntityData(this); } @Override - public int getPacketSize() { + public int getEstimatedSize() { return 12; } + + public PacketEntityData(int id, CompoundTag tag) { + this(); + this.id = id; + this.tag = tag; + } } diff --git a/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestEntityData.java b/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestEntityData.java index 393b82e..8d51efc 100644 --- a/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestEntityData.java +++ b/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestEntityData.java @@ -1,8 +1,8 @@ package toufoumaster.btwaila.network.packet; -import net.minecraft.core.net.handler.NetHandler; +import net.minecraft.core.net.handler.PacketHandler; import net.minecraft.core.net.packet.Packet; -import toufoumaster.btwaila.mixin.interfaces.INetServerHandler; +import toufoumaster.btwaila.mixin.interfaces.IPacketHandlerServer; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -15,28 +15,28 @@ public PacketRequestEntityData() { this.isChunkDataPacket = true; } - public PacketRequestEntityData(int id) { - this(); - this.id = id; - } - @Override - public void readPacketData(DataInputStream dis) throws IOException { + public void read(DataInputStream dis) throws IOException { this.id = dis.readInt(); } @Override - public void writePacketData(DataOutputStream dos) throws IOException { + public void write(DataOutputStream dos) throws IOException { dos.writeInt(this.id); } @Override - public void processPacket(NetHandler netHandler) { - ((INetServerHandler)netHandler).bTWaila$handleRequestEntityData(this); + public void handlePacket(PacketHandler packetHandler) { + ((IPacketHandlerServer)packetHandler).bTWaila$handleRequestEntityData(this); } @Override - public int getPacketSize() { + public int getEstimatedSize() { return 4; } + + public PacketRequestEntityData(int id) { + this(); + this.id = id; + } } diff --git a/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestTileEntityData.java b/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestTileEntityData.java index 70bca3a..b840122 100644 --- a/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestTileEntityData.java +++ b/src/main/java/toufoumaster/btwaila/network/packet/PacketRequestTileEntityData.java @@ -1,8 +1,8 @@ package toufoumaster.btwaila.network.packet; -import net.minecraft.core.net.handler.NetHandler; +import net.minecraft.core.net.handler.PacketHandler; import net.minecraft.core.net.packet.Packet; -import toufoumaster.btwaila.mixin.interfaces.INetServerHandler; +import toufoumaster.btwaila.mixin.interfaces.IPacketHandlerServer; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -17,34 +17,34 @@ public PacketRequestTileEntityData() { this.isChunkDataPacket = true; } - public PacketRequestTileEntityData(int x, int y, int z) { - this(); - this.x = x; - this.y = y; - this.z = z; - } - @Override - public void readPacketData(DataInputStream dis) throws IOException { + public void read(DataInputStream dis) throws IOException { this.x = dis.readInt(); this.y = dis.readInt(); this.z = dis.readInt(); } @Override - public void writePacketData(DataOutputStream dos) throws IOException { + public void write(DataOutputStream dos) throws IOException { dos.writeInt(this.x); dos.writeInt(this.y); dos.writeInt(this.z); } @Override - public void processPacket(NetHandler netHandler) { - ((INetServerHandler)netHandler).bTWaila$handleRequestTileEntityData(this); + public void handlePacket(PacketHandler packetHandler) { + ((IPacketHandlerServer)packetHandler).bTWaila$handleRequestTileEntityData(this); } @Override - public int getPacketSize() { + public int getEstimatedSize() { return 12; } + + public PacketRequestTileEntityData(int x, int y, int z) { + this(); + this.x = x; + this.y = y; + this.z = z; + } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/BasketTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/BasketTooltip.java index 33bd08a..9fc828f 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/BasketTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/BasketTooltip.java @@ -1,9 +1,11 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityBasket; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.TileTooltip; @@ -27,6 +29,6 @@ public void drawAdvancedTooltip(TileEntityBasket basket, AdvancedInfoComponent a } @Override public DemoEntry tooltipDemo(Random random){ - return new DemoEntry(Block.basket, 0, new TileEntityBasket(), new ItemStack[]{Item.basket.getDefaultStack()}); + return new DemoEntry(Blocks.BASKET, 0, new TileEntityBasket(), new ItemStack[]{Items.BASKET.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/FlagTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/FlagTooltip.java index f9182fd..77b6a55 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/FlagTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/FlagTooltip.java @@ -4,14 +4,17 @@ import net.minecraft.client.render.item.model.ItemModelDispatcher; import net.minecraft.client.render.tessellator.Tessellator; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityFlag; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import org.lwjgl.opengl.GL11; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.demo.DemoManager; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.TileTooltip; +import toufoumaster.btwaila.util.UUIDHelper; import java.util.Random; @@ -27,7 +30,7 @@ public void drawAdvancedTooltip(TileEntityFlag flag, AdvancedInfoComponent advan ItemStack color1 = flag.items[0]; ItemStack color2 = flag.items[1]; ItemStack color3 = flag.items[2]; - advancedInfoComponent.drawStringWithShadow(translator.translateKey("btwaila.tooltip.flag.owner").replace("{name}", flag.owner.isEmpty() ? translator.translateKey("btwaila.tooltip.flag.owner.none") : flag.owner), 0); + advancedInfoComponent.drawStringWithShadow(translator.translateKey("btwaila.tooltip.flag.owner").replace("{name}", flag.owner == null ? translator.translateKey("btwaila.tooltip.flag.owner.none") : String.valueOf(UUIDHelper.getNameFromUUID(flag.owner))), 0); advancedInfoComponent.addOffY(2); renderStringAndStack(advancedInfoComponent,translator.translateKey("btwaila.tooltip.flag.color").replace("{id}", "1") + " " + ((color1 != null) ? translator.translateNameKey(color1.getItemKey()) : translator.translateKey("btwaila.tooltip.flag.empty")), 0, color1); renderStringAndStack(advancedInfoComponent,translator.translateKey("btwaila.tooltip.flag.color").replace("{id}", "2") + " " + ((color2 != null) ? translator.translateNameKey(color2.getItemKey()) : translator.translateKey("btwaila.tooltip.flag.empty")), 0, color2); @@ -37,12 +40,12 @@ public void drawAdvancedTooltip(TileEntityFlag flag, AdvancedInfoComponent advan protected void renderStringAndStack(AdvancedInfoComponent advancedInfoComponent, String s, int offX, ItemStack stack){ if (stack != null){ int y = advancedInfoComponent.getOffY() - 1; - int x = advancedInfoComponent.getPosX() - 16 + advancedInfoComponent.minecraft.fontRenderer.getStringWidth(translator.translateKey("btwaila.tooltip.flag.color").replace("{id}", "1") + " "); + int x = advancedInfoComponent.getPosX() - 16 + advancedInfoComponent.minecraft.font.getStringWidth(translator.translateKey("btwaila.tooltip.flag.color").replace("{id}", "1") + " "); y -= 3; Tessellator t = Tessellator.instance; ItemModel model = ItemModelDispatcher.getInstance().getDispatch(stack); - model.renderItemIntoGui(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, stack, x, y, 1.0F); - model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, stack, x, y, 1.0F); + model.renderItemIntoGui(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, stack, x, y, 1.0F); + model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, stack, x, y, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); } advancedInfoComponent.drawStringWithShadow(s, offX); @@ -51,8 +54,8 @@ protected void renderStringAndStack(AdvancedInfoComponent advancedInfoComponent, @Override public DemoEntry tooltipDemo(Random random){ TileEntityFlag demoFlag = new TileEntityFlag(); - demoFlag.items = new ItemStack[]{new ItemStack(Item.dye, 1, random.nextInt(16)), new ItemStack(Item.dye, 1, random.nextInt(16)), new ItemStack(Item.dye, 1, random.nextInt(16))}; - demoFlag.owner = DemoManager.getRandomName(random); - return new DemoEntry(Block.flag, 0, demoFlag, new ItemStack[]{Item.flag.getDefaultStack()}); + demoFlag.items = new ItemStack[]{new ItemStack(Items.DYE, 1, random.nextInt(16)), new ItemStack(Items.DYE, 1, random.nextInt(16)), new ItemStack(Items.DYE, 1, random.nextInt(16))}; + //demoFlag.owner = DemoManager.getRandomName(random); + return new DemoEntry(Blocks.FLAG, 0, demoFlag, new ItemStack[]{Items.FLAG.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/FurnaceTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/FurnaceTooltip.java index 0c240ae..9c19d6f 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/FurnaceTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/FurnaceTooltip.java @@ -1,8 +1,9 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; -import net.minecraft.core.block.entity.TileEntityBlastFurnace; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityFurnace; +import net.minecraft.core.block.entity.TileEntityFurnaceBlast; import net.minecraft.core.item.ItemStack; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.demo.DemoManager; @@ -20,13 +21,13 @@ public class FurnaceTooltip extends TileTooltip { @Override public void initTooltip() { addClass(TileEntityFurnace.class); - addClass(TileEntityBlastFurnace.class); + addClass(TileEntityFurnaceBlast.class); } @Override public void drawAdvancedTooltip(TileEntityFurnace furnace, AdvancedInfoComponent advancedInfoComponent) { - ItemStack input = furnace.getStackInSlot(0); - ItemStack fuel = furnace.getStackInSlot(1); - ItemStack output = furnace.getStackInSlot(2); + ItemStack input = furnace.getItem(0); + ItemStack fuel = furnace.getItem(1); + ItemStack output = furnace.getItem(2); ProgressBarOptions options = new ProgressBarOptions(0, translator.translateKey("btwaila.tooltip.furnace.progress"), true, true); advancedInfoComponent.drawProgressBarWithText(furnace.getCookProgressScaled(100), 100, options, 0); @@ -38,11 +39,11 @@ public void drawAdvancedTooltip(TileEntityFurnace furnace, AdvancedInfoComponent @Override public DemoEntry tooltipDemo(Random random){ TileEntityFurnace demoFurnace = new TileEntityFurnace(); - demoFurnace.setInventorySlotContents(0, DemoManager.randomStack(random)); - demoFurnace.setInventorySlotContents(1, DemoManager.randomStack(random)); - demoFurnace.setInventorySlotContents(2, DemoManager.randomStack(random)); + demoFurnace.setItem(0, DemoManager.randomStack(random)); + demoFurnace.setItem(1, DemoManager.randomStack(random)); + demoFurnace.setItem(2, DemoManager.randomStack(random)); demoFurnace.currentBurnTime = DemoManager.getRandomFuelTime(random); demoFurnace.currentCookTime = random.nextInt(demoFurnace.maxCookTime); - return new DemoEntry(Block.furnaceStoneActive, 0, demoFurnace, new ItemStack[]{Block.furnaceStoneIdle.getDefaultStack()}); + return new DemoEntry(Blocks.FURNACE_STONE_ACTIVE, 0, demoFurnace, new ItemStack[]{Blocks.FURNACE_STONE_ACTIVE.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/InventoryTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/InventoryTooltip.java index aac8a63..75d5790 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/InventoryTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/InventoryTooltip.java @@ -1,11 +1,12 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; -import net.minecraft.core.block.BlockChest; +import net.minecraft.core.block.BlockLogicChest; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityChest; import net.minecraft.core.block.entity.TileEntityDispenser; import net.minecraft.core.item.ItemStack; -import net.minecraft.core.player.inventory.IInventory; +import net.minecraft.core.player.inventory.container.Container; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.demo.TileEntityDemoChest; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; @@ -15,7 +16,7 @@ import static toufoumaster.btwaila.BTWaila.translator; -public class InventoryTooltip extends TileTooltip { +public class InventoryTooltip extends TileTooltip { @Override public void initTooltip() { addClass(TileEntityChest.class); @@ -23,15 +24,17 @@ public void initTooltip() { addClass(TileEntityDemoChest.class); } @Override - public void drawAdvancedTooltip(IInventory inventory, AdvancedInfoComponent advancedInfoComponent) { + public void drawAdvancedTooltip(Container inventory, AdvancedInfoComponent advancedInfoComponent) { if (inventory instanceof TileEntityChest){ TileEntityChest chest = (TileEntityChest)inventory; - inventory = BlockChest.getInventory(chest.worldObj, chest.x, chest.y, chest.z); + if (chest.worldObj != null) { + inventory = BlockLogicChest.getInventory(chest.worldObj, chest.x, chest.y, chest.z); + } } - int max = inventory.getSizeInventory(); + int max = inventory.getContainerSize(); int current = 0; for (int i = 0; i < max; i++) { - ItemStack itemStack = inventory.getStackInSlot(i); + ItemStack itemStack = inventory.getItem(i); if (itemStack != null) { current += itemStack.stackSize; } @@ -39,13 +42,13 @@ public void drawAdvancedTooltip(IInventory inventory, AdvancedInfoComponent adva advancedInfoComponent.drawStringWithShadow( translator.translateKey("btwaila.tooltip.inventory.storage") .replace("{current}", String.valueOf(current)) - .replace("{max}", String.valueOf(max * inventory.getInventoryStackLimit())), 0); + .replace("{max}", String.valueOf(max * inventory.getMaxStackSize())), 0); advancedInfoComponent.drawInventory(inventory, 0); } @Override public DemoEntry tooltipDemo(Random random){ - Block chest = Block.chestPlanksOakPainted; + Block chest = Blocks.CHEST_PLANKS_OAK_PAINTED; return new DemoEntry(chest, 8 * 16, new TileEntityDemoChest(random), new ItemStack[]{new ItemStack(chest, 1, 8 * 16)}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/JarToolTip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/JarToolTip.java index 044255e..551f57b 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/JarToolTip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/JarToolTip.java @@ -5,9 +5,11 @@ import net.minecraft.client.render.item.model.ItemModelDispatcher; import net.minecraft.client.render.tessellator.Tessellator; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityFlowerJar; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.demo.DemoManager; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; @@ -40,12 +42,12 @@ public void drawAdvancedTooltip(TileEntityFlowerJar flowerJar, AdvancedInfoCompo Lighting.enableInventoryLight(); if (flower != null){ - int x = advancedInfoComponent.getPosX() + advancedInfoComponent.getGame().fontRenderer.getStringWidth(text) + 2; + int x = advancedInfoComponent.getPosX() + advancedInfoComponent.getGame().font.getStringWidth(text) + 2; y -= 4; Tessellator t = Tessellator.instance; ItemModel model = ItemModelDispatcher.getInstance().getDispatch(flower); - model.renderItemIntoGui(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, flower, x, y, 1.0F); - model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, flower, x, y, 1.0F); + model.renderItemIntoGui(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, flower, x, y, 1.0F); + model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, flower, x, y, 1.0F); } Lighting.disable(); } @@ -53,6 +55,6 @@ public void drawAdvancedTooltip(TileEntityFlowerJar flowerJar, AdvancedInfoCompo public DemoEntry tooltipDemo(Random random){ TileEntityFlowerJar flowerJar = new TileEntityFlowerJar(); flowerJar.flowerInPot = DemoManager.randomStack(random).getItem().id; - return new DemoEntry(Block.jarGlass, 0, flowerJar, new ItemStack[]{Item.jar.getDefaultStack()}); + return new DemoEntry(Blocks.JAR_GLASS, 0, flowerJar, new ItemStack[]{Items.JAR.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/RecordPlayerTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/JukeboxTooltip.java similarity index 67% rename from src/main/java/toufoumaster/btwaila/tooltips/block/RecordPlayerTooltip.java rename to src/main/java/toufoumaster/btwaila/tooltips/block/JukeboxTooltip.java index 67325a7..81b1f5d 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/RecordPlayerTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/JukeboxTooltip.java @@ -4,9 +4,11 @@ import net.minecraft.client.render.item.model.ItemModelDispatcher; import net.minecraft.client.render.tessellator.Tessellator; import net.minecraft.core.block.Block; -import net.minecraft.core.block.entity.TileEntityRecordPlayer; +import net.minecraft.core.block.Blocks; +import net.minecraft.core.block.entity.TileEntityJukebox; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import org.lwjgl.opengl.GL11; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; @@ -15,35 +17,34 @@ import java.util.Random; import static toufoumaster.btwaila.BTWaila.translator; -import static toufoumaster.btwaila.gui.components.AdvancedInfoComponent.itemRender; -public class RecordPlayerTooltip extends TileTooltip { +public class JukeboxTooltip extends TileTooltip { @Override public void initTooltip() { - addClass(TileEntityRecordPlayer.class); + addClass(TileEntityJukebox.class); } @Override - public void drawAdvancedTooltip(TileEntityRecordPlayer recordPlayer, AdvancedInfoComponent advancedInfoComponent) { + public void drawAdvancedTooltip(TileEntityJukebox recordPlayer, AdvancedInfoComponent advancedInfoComponent) { String text = translator.translateKey("btwaila.tooltip.jukebox.disc").replace("{id}", String.valueOf(recordPlayer.record)); int y = advancedInfoComponent.getOffY() + 1; advancedInfoComponent.setOffY(y); advancedInfoComponent.drawStringWithShadow(text, 0); if (Item.itemsList[recordPlayer.record] != null){ ItemStack stack = new ItemStack(Item.itemsList[recordPlayer.record]); - int x = advancedInfoComponent.getPosX() + advancedInfoComponent.getGame().fontRenderer.getStringWidth(text) + 2; + int x = advancedInfoComponent.getPosX() + advancedInfoComponent.getGame().font.getStringWidth(text) + 2; y -= 4; Tessellator t = Tessellator.instance; ItemModel model = ItemModelDispatcher.getInstance().getDispatch(stack); - model.renderItemIntoGui(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, stack, x, y, 1.0F); - model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().fontRenderer, advancedInfoComponent.getGame().renderEngine, stack, x, y, 1.0F); + model.renderItemIntoGui(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, stack, x, y, 1.0F); + model.renderItemOverlayIntoGUI(t, advancedInfoComponent.getGame().font, advancedInfoComponent.getGame().textureManager, stack, x, y, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); } } @Override public DemoEntry tooltipDemo(Random random){ - TileEntityRecordPlayer demoJukeBox = new TileEntityRecordPlayer(); - demoJukeBox.record = Item.record13.id + random.nextInt(11); - Block jukeBox = Block.jukebox; + TileEntityJukebox demoJukeBox = new TileEntityJukebox(); + demoJukeBox.record = Items.RECORD_13.id + random.nextInt(11); + Block jukeBox = Blocks.JUKEBOX; return new DemoEntry(jukeBox, 0, demoJukeBox, new ItemStack[]{jukeBox.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/MobSpawnerTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/MobSpawnerTooltip.java index b42d959..e5f1fcf 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/MobSpawnerTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/MobSpawnerTooltip.java @@ -1,9 +1,11 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityMobSpawner; import net.minecraft.core.entity.EntityDispatcher; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.util.collection.NamespaceID; import net.minecraft.core.world.World; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; @@ -24,8 +26,8 @@ public void initTooltip() { public void drawAdvancedTooltip(TileEntityMobSpawner mobSpawner, AdvancedInfoComponent advancedInfoComponent) { boolean canSpawn = true; int canSpawnColor = Colors.LIGHT_GREEN; - World world = advancedInfoComponent.getGame().theWorld; - if (world == null || world.difficultySetting == 0 || (mobSpawner.getMobId() == null) || (mobSpawner.getMobId().equalsIgnoreCase("none"))) { + World world = advancedInfoComponent.getGame().currentWorld; + if (world == null || world.getDifficulty().id() == 0 || (mobSpawner.getMobId() == null) || (mobSpawner.getMobId().equalsIgnoreCase("none"))) { canSpawn = false; canSpawnColor = Colors.LIGHT_RED; } @@ -40,9 +42,9 @@ public void drawAdvancedTooltip(TileEntityMobSpawner mobSpawner, AdvancedInfoCom @Override public DemoEntry tooltipDemo(Random random){ TileEntityMobSpawner demoSpawner = new TileEntityMobSpawner(); - String[] entityIds = EntityDispatcher.keyToClassMap.keySet().toArray(new String[0]); - demoSpawner.setMobId(entityIds[random.nextInt(entityIds.length)]); - Block spawner = Block.mobspawner; + NamespaceID[] entityIds = EntityDispatcher.idToClassMap.keySet().toArray(new NamespaceID[0]); + demoSpawner.setMobId(entityIds[random.nextInt(entityIds.length)].toString()); + Block spawner = Blocks.MOBSPAWNER; return new DemoEntry(spawner, 0, demoSpawner, new ItemStack[]{spawner.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/NoteBlockTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/NoteBlockTooltip.java index bc6ab1b..8f5ebac 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/NoteBlockTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/NoteBlockTooltip.java @@ -1,7 +1,8 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; -import net.minecraft.core.block.entity.TileEntityNote; +import net.minecraft.core.block.Blocks; +import net.minecraft.core.block.entity.TileEntityNoteblock; import net.minecraft.core.block.material.Material; import net.minecraft.core.item.ItemStack; import net.minecraft.core.world.World; @@ -14,7 +15,7 @@ import static toufoumaster.btwaila.BTWaila.translator; -public class NoteBlockTooltip extends TileTooltip { +public class NoteBlockTooltip extends TileTooltip { public static HashMap materialList = new HashMap() {{ put(Material.stone, translator.translateKey("btwaila.tooltip.noteblock.material.stone")); put(Material.sand, translator.translateKey("btwaila.tooltip.noteblock.material.sand")); @@ -23,15 +24,15 @@ public class NoteBlockTooltip extends TileTooltip { }}; @Override public void initTooltip() { - addClass(TileEntityNote.class); + addClass(TileEntityNoteblock.class); } @Override - public void drawAdvancedTooltip(TileEntityNote entityNote, AdvancedInfoComponent advancedInfoComponent) { + public void drawAdvancedTooltip(TileEntityNoteblock entityNote, AdvancedInfoComponent advancedInfoComponent) { int note = entityNote.note; String blockModifier = translator.translateKey("btwaila.tooltip.noteblock.material.none"); - World world = advancedInfoComponent.getGame().theWorld; + World world = advancedInfoComponent.getGame().currentWorld; if (world != null){ - Material material = advancedInfoComponent.getGame().theWorld.getBlockMaterial(entityNote.x, entityNote.y - 1, entityNote.z); + Material material = advancedInfoComponent.getGame().currentWorld.getBlockMaterial(entityNote.x, entityNote.y - 1, entityNote.z); if (material != null && materialList.containsKey(material)) { blockModifier = materialList.get(material); } @@ -42,9 +43,9 @@ public void drawAdvancedTooltip(TileEntityNote entityNote, AdvancedInfoComponent } @Override public DemoEntry tooltipDemo(Random random){ - TileEntityNote demoNote = new TileEntityNote(); + TileEntityNoteblock demoNote = new TileEntityNoteblock(); demoNote.note = (byte) random.nextInt(25); - Block noteBlock = Block.noteblock; + Block noteBlock = Blocks.NOTEBLOCK; return new DemoEntry(noteBlock, 0, demoNote, new ItemStack[]{noteBlock.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/SeatTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/SeatTooltip.java index b58df67..82ea85f 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/SeatTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/SeatTooltip.java @@ -1,11 +1,13 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntitySeat; -import net.minecraft.core.entity.EntityLiving; -import net.minecraft.core.entity.monster.EntityHuman; +import net.minecraft.core.entity.Mob; +import net.minecraft.core.entity.monster.MobHuman; import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.demo.DemoManager; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; @@ -31,10 +33,10 @@ public void drawAdvancedTooltip(TileEntitySeat seat, AdvancedInfoComponent advan @Override public DemoEntry tooltipDemo(Random random){ TileEntitySeat demoSeat = new TileEntitySeat(); - EntityLiving demoHuman = new EntityHuman(null); + Mob demoHuman = new MobHuman(null); demoHuman.nickname = DemoManager.getRandomName(random); demoSeat.setPassenger(demoHuman); - Block seat = Block.seat; - return new DemoEntry(seat, 0, demoSeat, new ItemStack[]{Item.seat.getDefaultStack()}); + Block seat = Blocks.SEAT; + return new DemoEntry(seat, 0, demoSeat, new ItemStack[]{Items.SEAT.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/SignTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/SignTooltip.java index 31e338b..07f0952 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/SignTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/SignTooltip.java @@ -4,6 +4,9 @@ import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.mixin.mixins.accessors.TileEntitySignAccessor; import toufoumaster.btwaila.tooltips.TileTooltip; +import toufoumaster.btwaila.util.UUIDHelper; + +import java.util.UUID; import static toufoumaster.btwaila.BTWaila.translator; @@ -15,8 +18,8 @@ public void initTooltip() { @Override public void drawAdvancedTooltip(TileEntitySign interfaceObject, AdvancedInfoComponent advancedInfoComponent) { - String owner = ((TileEntitySignAccessor)interfaceObject).getOwner(); - String text = translator.translateKey("btwaila.tooltip.sign.owner").replace("{id}", owner.isEmpty() ? translator.translateKey("btwaila.tooltip.sign.owner.none") : owner); + UUID owner = ((TileEntitySignAccessor)interfaceObject).getOwner(); + String text = translator.translateKey("btwaila.tooltip.sign.owner").replace("{id}", owner == null ? translator.translateKey("btwaila.tooltip.sign.owner.none") : String.valueOf(UUIDHelper.getNameFromUUID(owner))); advancedInfoComponent.drawStringWithShadow(text, 0); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/block/TrommelTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/block/TrommelTooltip.java index ee6ee3b..e9f0326 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/block/TrommelTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/block/TrommelTooltip.java @@ -1,6 +1,7 @@ package toufoumaster.btwaila.tooltips.block; import net.minecraft.core.block.Block; +import net.minecraft.core.block.Blocks; import net.minecraft.core.block.entity.TileEntityTrommel; import net.minecraft.core.item.ItemStack; import toufoumaster.btwaila.demo.DemoEntry; @@ -22,17 +23,17 @@ public void initTooltip() { public void drawAdvancedTooltip(TileEntityTrommel trommel, AdvancedInfoComponent advancedInfoComponent) { ProgressBarOptions options = new ProgressBarOptions().setText(translator.translateKey("btwaila.tooltip.trommel.progress")); advancedInfoComponent.drawProgressBarWithText((int) trommel.getCookProgressPercent(100), 100, options, 0); - advancedInfoComponent.drawItemList(new ItemStack[] {trommel.getStackInSlot(4), trommel.getStackInSlot(0), trommel.getStackInSlot(1), trommel.getStackInSlot(2), trommel.getStackInSlot(3)}, 0); + advancedInfoComponent.drawItemList(new ItemStack[] {trommel.getItem(4), trommel.getItem(0), trommel.getItem(1), trommel.getItem(2), trommel.getItem(3)}, 0); } @Override public DemoEntry tooltipDemo(Random random){ TileEntityTrommel demoTrommel = new TileEntityTrommel(); - demoTrommel.setInventorySlotContents(0, DemoManager.randomStack(random)); - demoTrommel.setInventorySlotContents(1, DemoManager.randomStack(random)); - demoTrommel.setInventorySlotContents(2, DemoManager.randomStack(random)); - demoTrommel.setInventorySlotContents(3, DemoManager.randomStack(random)); - demoTrommel.setInventorySlotContents(4, DemoManager.randomStack(random)); + demoTrommel.setItem(0, DemoManager.randomStack(random)); + demoTrommel.setItem(1, DemoManager.randomStack(random)); + demoTrommel.setItem(2, DemoManager.randomStack(random)); + demoTrommel.setItem(3, DemoManager.randomStack(random)); + demoTrommel.setItem(4, DemoManager.randomStack(random)); demoTrommel.currentItemBurnTime = DemoManager.getRandomFuelTime(random); - return new DemoEntry(Block.trommelActive, 0, demoTrommel, new ItemStack[]{Block.trommelIdle.getDefaultStack()}); + return new DemoEntry(Blocks.TROMMEL_ACTIVE, 0, demoTrommel, new ItemStack[]{Blocks.TROMMEL_IDLE.getDefaultStack()}); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/entity/ChickenTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/entity/ChickenTooltip.java index 5005191..c141f7c 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/entity/ChickenTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/entity/ChickenTooltip.java @@ -1,6 +1,6 @@ package toufoumaster.btwaila.tooltips.entity; -import net.minecraft.core.entity.animal.EntityChicken; +import net.minecraft.core.entity.animal.MobChicken; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.EntityTooltip; @@ -9,19 +9,19 @@ import static toufoumaster.btwaila.BTWaila.translator; -public class ChickenTooltip extends EntityTooltip { +public class ChickenTooltip extends EntityTooltip { @Override public void initTooltip() { - addClass(EntityChicken.class); + addClass(MobChicken.class); } @Override - public void drawAdvancedTooltip(EntityChicken chicken, AdvancedInfoComponent advancedInfoComponent) { - String text = translator.translateKey("btwaila.tooltip.chicken.egg").replace("{timer}", String.valueOf(chicken.timeUntilNextEgg/20)); + public void drawAdvancedTooltip(MobChicken chicken, AdvancedInfoComponent advancedInfoComponent) { + String text = translator.translateKey("btwaila.tooltip.chicken.egg").replace("{timer}", String.valueOf(chicken.eggTimer/20)); advancedInfoComponent.drawStringWithShadow(text, 0); } @Override public DemoEntry tooltipDemo(Random random){ - return new DemoEntry(new EntityChicken(null)); + return new DemoEntry(new MobChicken(null)); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/entity/MinecartTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/entity/MinecartTooltip.java index adc30a3..9115cee 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/entity/MinecartTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/entity/MinecartTooltip.java @@ -2,7 +2,6 @@ import net.minecraft.core.entity.vehicle.EntityMinecart; import net.minecraft.core.item.ItemStack; -import net.minecraft.core.player.inventory.IInventory; import toufoumaster.btwaila.demo.DemoEntry; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.EntityTooltip; @@ -19,7 +18,7 @@ public void initTooltip() { @Override public void drawAdvancedTooltip(EntityMinecart entityMinecart, AdvancedInfoComponent advancedInfoComponent) { - switch (entityMinecart.minecartType) { + switch (entityMinecart.getType()) { case 0: // Minecart String entityName = AdvancedInfoComponent.getEntityName(entityMinecart.passenger); advancedInfoComponent.drawStringWithShadow( @@ -27,10 +26,10 @@ public void drawAdvancedTooltip(EntityMinecart entityMinecart, AdvancedInfoCompo .replace("{name}", entityName), 0); break; case 1: // Chest - int max = ((IInventory) entityMinecart).getSizeInventory(); + int max = entityMinecart.getContainerSize(); int current = 0; for (int i = 0; i < max; i++) { - ItemStack itemStack = ((IInventory) entityMinecart).getStackInSlot(i); + ItemStack itemStack = entityMinecart.getItem(i); if (itemStack != null) { current += itemStack.stackSize; } @@ -38,20 +37,20 @@ public void drawAdvancedTooltip(EntityMinecart entityMinecart, AdvancedInfoCompo advancedInfoComponent.drawStringWithShadow( translator.translateKey("btwaila.tooltip.minecart.storage") .replace("{current}", String.valueOf(current)) - .replace("{max}", String.valueOf(max * ((IInventory) entityMinecart).getInventoryStackLimit())), 0); + .replace("{max}", String.valueOf(max * entityMinecart.getMaxStackSize())), 0); advancedInfoComponent.drawInventory(entityMinecart, 0); break; case 2: // Furnace advancedInfoComponent.drawStringWithShadow(translator.translateKey("btwaila.tooltip.minecart.fuel") - .replace("{fuel}", String.valueOf(entityMinecart.fuel)), 0); + .replace("{fuel}", String.valueOf(entityMinecart.getFuel())), 0); break; } } @Override public DemoEntry tooltipDemo(Random random){ EntityMinecart demoMinecart = new EntityMinecart(null); - demoMinecart.minecartType = random.nextInt(3); + demoMinecart.setType((byte) random.nextInt(3)); return new DemoEntry(demoMinecart); } } diff --git a/src/main/java/toufoumaster/btwaila/tooltips/entity/PigTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/entity/PigTooltip.java index 4c7301a..d5562be 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/entity/PigTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/entity/PigTooltip.java @@ -1,19 +1,19 @@ package toufoumaster.btwaila.tooltips.entity; -import net.minecraft.core.entity.animal.EntityPig; +import net.minecraft.core.entity.animal.MobPig; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.EntityTooltip; import static toufoumaster.btwaila.BTWaila.translator; -public class PigTooltip extends EntityTooltip { +public class PigTooltip extends EntityTooltip { @Override public void initTooltip() { - addClass(EntityPig.class); + addClass(MobPig.class); } @Override - public void drawAdvancedTooltip(EntityPig interfaceObject, AdvancedInfoComponent advancedInfoComponent) { + public void drawAdvancedTooltip(MobPig interfaceObject, AdvancedInfoComponent advancedInfoComponent) { if (interfaceObject.getSaddled()){ String entityName = AdvancedInfoComponent.getEntityName(interfaceObject.getPassenger()); diff --git a/src/main/java/toufoumaster/btwaila/tooltips/entity/PlayerTooltip.java b/src/main/java/toufoumaster/btwaila/tooltips/entity/PlayerTooltip.java index 5c215d3..5151d52 100644 --- a/src/main/java/toufoumaster/btwaila/tooltips/entity/PlayerTooltip.java +++ b/src/main/java/toufoumaster/btwaila/tooltips/entity/PlayerTooltip.java @@ -1,14 +1,14 @@ package toufoumaster.btwaila.tooltips.entity; -import net.minecraft.client.entity.player.EntityOtherPlayerMP; -import net.minecraft.core.entity.player.EntityPlayer; +import net.minecraft.client.entity.player.PlayerRemote; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.item.ItemStack; import toufoumaster.btwaila.gui.components.AdvancedInfoComponent; import toufoumaster.btwaila.tooltips.EntityTooltip; -public class PlayerTooltip extends EntityTooltip { +public class PlayerTooltip extends EntityTooltip { @Override - public void drawAdvancedTooltip(EntityPlayer entityPlayer, AdvancedInfoComponent advancedInfoComponent) { + public void drawAdvancedTooltip(Player entityPlayer, AdvancedInfoComponent advancedInfoComponent) { ItemStack[] stack = new ItemStack[] {entityPlayer.getCurrentEquippedItem()}; advancedInfoComponent.drawItemList(stack, -24); advancedInfoComponent.addOffY(-8); @@ -17,6 +17,6 @@ public void drawAdvancedTooltip(EntityPlayer entityPlayer, AdvancedInfoComponent @Override public void initTooltip() { - addClass(EntityOtherPlayerMP.class); + addClass(PlayerRemote.class); } } diff --git a/src/main/java/toufoumaster/btwaila/util/ProgressBarOptions.java b/src/main/java/toufoumaster/btwaila/util/ProgressBarOptions.java index 5d80853..baa1751 100644 --- a/src/main/java/toufoumaster/btwaila/util/ProgressBarOptions.java +++ b/src/main/java/toufoumaster/btwaila/util/ProgressBarOptions.java @@ -1,6 +1,6 @@ package toufoumaster.btwaila.util; -import net.minecraft.client.render.stitcher.TextureRegistry; +import net.minecraft.client.render.texture.stitcher.TextureRegistry; public class ProgressBarOptions { diff --git a/src/main/java/toufoumaster/btwaila/util/TextureOptions.java b/src/main/java/toufoumaster/btwaila/util/TextureOptions.java index 1e53792..0c3ff12 100644 --- a/src/main/java/toufoumaster/btwaila/util/TextureOptions.java +++ b/src/main/java/toufoumaster/btwaila/util/TextureOptions.java @@ -1,7 +1,7 @@ package toufoumaster.btwaila.util; -import net.minecraft.client.render.stitcher.IconCoordinate; -import net.minecraft.client.render.stitcher.TextureRegistry; +import net.minecraft.client.render.texture.stitcher.IconCoordinate; +import net.minecraft.client.render.texture.stitcher.TextureRegistry; public class TextureOptions extends ColorOptions { public IconCoordinate coordinate; diff --git a/src/main/java/toufoumaster/btwaila/util/UUIDHelper.java b/src/main/java/toufoumaster/btwaila/util/UUIDHelper.java new file mode 100644 index 0000000..28f8d74 --- /dev/null +++ b/src/main/java/toufoumaster/btwaila/util/UUIDHelper.java @@ -0,0 +1,51 @@ +package toufoumaster.btwaila.util; + +import com.b100.json.JsonParser; +import com.b100.json.element.JsonObject; +import com.b100.utils.StringUtils; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +// thanks melon! +public class UUIDHelper { + + private static final String url = "https://sessionserver.mojang.com/session/minecraft/profile/"; + private static final JsonParser jsonParser = new JsonParser(); + private static final Map UUIDtoNameMap = new HashMap<>(); + + public static @Nullable String getNameFromUUID(UUID uuid){ + if (uuid == null) return null; + + if(UUIDtoNameMap.containsKey(uuid)){ + return UUIDtoNameMap.get(uuid); + } + + String string; + try{ + string = StringUtils.getWebsiteContentAsString(url + uuid); + }catch (Exception e) { + System.err.println("Can't connect to Mojang API."); + e.printStackTrace(); + return null; + } + if(string.isEmpty()) { + System.err.println("UUID [" + uuid + "] doesn't exist!"); + return null; + } + String username; + try { + JsonObject contentParsed = jsonParser.parse(string); + username = contentParsed.getString("name"); + }catch (Exception e) { + e.printStackTrace(); + return null; + } + + UUIDtoNameMap.put(uuid, username); + return username; + } + +} diff --git a/src/main/java/toufoumaster/btwaila/util/VersionHelper.java b/src/main/java/toufoumaster/btwaila/util/VersionHelper.java index 530585a..6464637 100644 --- a/src/main/java/toufoumaster/btwaila/util/VersionHelper.java +++ b/src/main/java/toufoumaster/btwaila/util/VersionHelper.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.net.packet.Packet; -import net.minecraft.core.net.packet.Packet250CustomPayload; +import net.minecraft.core.net.packet.PacketCustomPayload; import toufoumaster.btwaila.BTWaila; public class VersionHelper { @@ -52,27 +52,27 @@ private static void outDatedPrint(VersionHelper versionHelper) { String text = "§eThe current BTWaila version installed §0[§5"+BTWaila.modVersion.major+"."+BTWaila.modVersion.minor+"."+BTWaila.modVersion.patch+"§0]§e is outdated."; String text2 = "Server requirement §0[§5"+versionHelper.major+"."+versionHelper.minor+".x§0]"; BTWaila.LOGGER.warn(text+text2); - Minecraft mc = Minecraft.getMinecraft(Minecraft.class); - mc.ingameGUI.addChatMessage((text)); - mc.ingameGUI.addChatMessage((text2)); + Minecraft mc = Minecraft.getMinecraft(); + mc.hudIngame.addChatMessage((text)); + mc.hudIngame.addChatMessage((text2)); } private static void upgradeAvailablePrint(VersionHelper versionHelper) { String text = "§4The current BTWaila version installed §0[§5"+BTWaila.modVersion.major+"."+BTWaila.modVersion.minor+"."+BTWaila.modVersion.patch+"§0]§4 got an update. "; String text2 = "§4The actual server is using it §0[§5"+versionHelper.major+"."+versionHelper.minor+"."+versionHelper.patch+"§0]§4, don't forget to update"; BTWaila.LOGGER.info(text+text2); - Minecraft mc = Minecraft.getMinecraft(Minecraft.class); - mc.ingameGUI.addChatMessage((text)); - mc.ingameGUI.addChatMessage((text2)); + Minecraft mc = Minecraft.getMinecraft(); + mc.hudIngame.addChatMessage((text)); + mc.hudIngame.addChatMessage((text2)); } private static void serverOutDatedPrint(VersionHelper versionHelper) { String text = "§eThe current BTWaila version installed on this server is "; String text2 = "§eoutdated §0[§5"+versionHelper.major+"."+versionHelper.minor+"."+versionHelper.patch+"§0]§e. Please contact the server owner"; BTWaila.LOGGER.warn(text+text2); - Minecraft mc = Minecraft.getMinecraft(Minecraft.class); - mc.ingameGUI.addChatMessage((text)); - mc.ingameGUI.addChatMessage((text2)); + Minecraft mc = Minecraft.getMinecraft(); + mc.hudIngame.addChatMessage((text)); + mc.hudIngame.addChatMessage((text2)); } @Override @@ -86,13 +86,13 @@ public String toString() // } public Packet getPacket(){ - return new Packet250CustomPayload("BTWaila|VersionCheck", compilePayload()); + return new PacketCustomPayload("BTWaila|VersionCheck", compilePayload()); } public byte[] compilePayload(){ final byte payloadVersion = 1; // Change if the data format changes return new byte[]{payloadVersion, major, minor, patch}; } - public static void handlePacket(Packet250CustomPayload payloadPacket){ + public static void handlePacket(PacketCustomPayload payloadPacket){ byte version = payloadPacket.data[0]; switch (version){ case 1: diff --git a/src/main/resources/btwaila.mixins.json b/src/main/resources/btwaila.mixins.json index 45400e1..364ed23 100644 --- a/src/main/resources/btwaila.mixins.json +++ b/src/main/resources/btwaila.mixins.json @@ -9,14 +9,14 @@ ], "client": [ "GameSettingsMixin", - "GuiIngameMenuMixin", - "GuiIngameMixin", - "NetClientHandlerMixin", + "ScreenPauseMixin", + "HudIngameMixin", + "PacketHandlerClientMixin", "accessors.IPlayerControllerAccessor" ], "server": [ "NetLoginHandlerMixin", - "NetServerHandlerMixin" + "PacketHandlerServerMixin" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index be86a02..7a918fb 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -31,13 +31,17 @@ "toufoumaster.btwaila.BTWaila" ], "afterClientStart": [ - "toufoumaster.btwaila.BTWailaComponents" + "toufoumaster.btwaila.BTWailaComponents", + "toufoumaster.btwaila.BTWailaClient" ], "btwaila": [ "toufoumaster.btwaila.entryplugins.waila.BTWailaPlugin" ], "modmenu": [ "toufoumaster.btwaila.entryplugins.modmenu.ModMenuModule" + ], + "client": [ + "toufoumaster.btwaila.BTWailaClient" ] }, "mixins": [ @@ -46,8 +50,8 @@ "depends": { "fabricloader": ">=0.15.5", - "halplibe": ">=3.4.17", - "minecraft": "~7.2-beta" + "halplibe": ">=5.2.0", + "minecraft": "~7.3" }, "suggests": { }