diff --git a/build.gradle b/build.gradle index 55651124a..ebbc880b2 100644 --- a/build.gradle +++ b/build.gradle @@ -43,6 +43,8 @@ minecraft { // Simply re-run your setup task after changing the mappings to update your workspace. mappings channel: 'official', version: '1.17.1' + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. // Default run configurations. diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index f76680f7d..7b9332455 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -88,6 +88,7 @@ public class OverdriveThatMatters { private void setupClient(final FMLClientSetupEvent event) { ANDROID_GUI = new AndroidGui(); MinecraftForge.EVENT_BUS.register(ANDROID_GUI); + MinecraftForge.EVENT_BUS.register(AndroidGui.class); } private void enqueueIMC(final InterModEnqueueEvent event) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/AndroidGui.java b/src/main/java/ru/dbotthepony/mc/otm/client/AndroidGui.java index f7d3f7a8b..0d7eae993 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/AndroidGui.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/AndroidGui.java @@ -2,10 +2,15 @@ package ru.dbotthepony.mc.otm.client; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.DeathScreen; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.gui.ForgeIngameGui; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -24,6 +29,22 @@ public class AndroidGui { private IAndroidCapability last_state; + @SubscribeEvent + public static void onOpenGUI(GuiOpenEvent event) { + if (!(event.getGui() instanceof DeathScreen screen)) + return; + + LocalPlayer ply = Minecraft.getInstance().player; + + if (ply == null) + return; + + ply.getCapability(MatteryCapability.ANDROID).ifPresent(cap -> { + if (cap.isAndroid()) + screen.title = new TranslatableComponent("otm.death_reason"); + }); + } + @SubscribeEvent public void onLayerRenderEvent(RenderGameOverlayEvent.PreLayer event) { if (event.getOverlay() != ForgeIngameGui.FOOD_LEVEL_ELEMENT && event.getOverlay() != ForgeIngameGui.AIR_LEVEL_ELEMENT) diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 000000000..fe5968c62 --- /dev/null +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1,2 @@ +# Make Screen.title be public and easily modifiable +public-f net.minecraft.client.gui.screens.Screen f_96539_ # title diff --git a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json index 603f083db..f8b13b401 100644 --- a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json +++ b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json @@ -15,6 +15,8 @@ "otm.gui.matter.format": "Matter: %s", "otm.gui.matter.name": "MtU", + "otm.death_reason": "Decommissioned!", + "otm.item.power.infinite.storage": "Stored energy: Infinity / Infinity", "otm.item.power.infinite.throughput": "Max I/O Infinite / Infinite",