Skip to content

Commit 5fa083b

Browse files
committed
调整终极工作台的GUI来适应材质包
1 parent c344c2a commit 5fa083b

File tree

6 files changed

+91
-2
lines changed

6 files changed

+91
-2
lines changed

build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ dependencies {
226226

227227
// Mod Dependencies
228228
implementation("CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.+")
229-
implementation(rfg.deobf("curse.maven:jaopca-266936:3487112"))
230229
implementation(rfg.deobf("curse.maven:modularui-624243:7102461"))
231230
compileOnly(rfg.deobf("curse.maven:electroblobs-wizardry-265642:5354477"))
232231
implementation(rfg.deobf("curse.maven:modularmachinery-community-edition-817377:7306619"))

src/main/java/github/kasuminova/novaeng/NovaEngCoreConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public static class Client {
4646
@Config.RequiresMcRestart
4747
@Config.Name("爆炸")
4848
public boolean piece = false;
49+
50+
@Config.Name("ExtremeCraftingUIModification")
51+
public boolean ExtremeCraftingUIModification = true;
4952
}
5053

5154
public static class Server {

src/main/java/github/kasuminova/novaeng/NovaEngineeringCore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"required-after:lumenized@[1.0.2,);" +
6060
"after:fluxnetworks@[4.1.0,);",
6161
acceptedMinecraftVersions = "[1.12, 1.13)",
62-
acceptableRemoteVersions = "[1.21.7, 1.23.0)"
62+
acceptableRemoteVersions = "[1.21.7, 1.24.0)"
6363
)
6464
@SuppressWarnings("MethodMayBeStatic")
6565
public class NovaEngineeringCore {
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package github.kasuminova.novaeng.mixin.avaritia;
2+
3+
import github.kasuminova.novaeng.NovaEngCoreConfig;
4+
import morph.avaritia.container.ContainerExtremeCrafting;
5+
import morph.avaritia.tile.TileDireCraftingTable;
6+
import net.minecraft.entity.player.InventoryPlayer;
7+
import net.minecraft.inventory.Container;
8+
import net.minecraft.inventory.Slot;
9+
import net.minecraft.util.math.BlockPos;
10+
import net.minecraft.world.World;
11+
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Inject;
14+
import org.spongepowered.asm.mixin.injection.Redirect;
15+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
16+
17+
@Mixin(value = ContainerExtremeCrafting.class, remap = false)
18+
public abstract class MixinContainerExtremeCrafting extends Container {
19+
20+
@Redirect(method = "<init>", at =
21+
@At(value = "INVOKE", target = "Lmorph/avaritia/container/ContainerExtremeCrafting;addSlotToContainer(Lnet/minecraft/inventory/Slot;)Lnet/minecraft/inventory/Slot;", ordinal = 2))
22+
public Slot onInitO(ContainerExtremeCrafting instance, Slot slot) {
23+
if (NovaEngCoreConfig.CLIENT.ExtremeCraftingUIModification) {
24+
return slot;
25+
} else {
26+
return this.addSlotToContainer(slot);
27+
}
28+
}
29+
30+
@Redirect(method = "<init>", at =
31+
@At(value = "INVOKE", target = "Lmorph/avaritia/container/ContainerExtremeCrafting;addSlotToContainer(Lnet/minecraft/inventory/Slot;)Lnet/minecraft/inventory/Slot;", ordinal = 3))
32+
public Slot onInitT(ContainerExtremeCrafting instance, Slot slot) {
33+
if (NovaEngCoreConfig.CLIENT.ExtremeCraftingUIModification) {
34+
return slot;
35+
} else {
36+
return this.addSlotToContainer(slot);
37+
}
38+
}
39+
40+
@Inject(method = "<init>", at = @At("TAIL"))
41+
public void onInit(InventoryPlayer player, World world, BlockPos pos, TileDireCraftingTable table, CallbackInfo ci) {
42+
if (NovaEngCoreConfig.CLIENT.ExtremeCraftingUIModification) {
43+
for (int wy = 0; wy < 3; ++wy) {
44+
for (int ex = 0; ex < 9; ++ex) {
45+
addSlotToContainer(new Slot(player, ex + wy * 9 + 9, 39 + ex * 18, 174 + wy * 18));
46+
}
47+
}
48+
49+
for (int ex = 0; ex < 9; ++ex) {
50+
this.addSlotToContainer(new Slot(player, ex, 39 + ex * 18, 232));
51+
}
52+
}
53+
}
54+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package github.kasuminova.novaeng.mixin.avaritia;
2+
3+
import github.kasuminova.novaeng.NovaEngCoreConfig;
4+
import morph.avaritia.client.gui.GUIExtremeCrafting;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.ModifyArg;
8+
9+
@Mixin(value = GUIExtremeCrafting.class, remap = false)
10+
public class MixinGuiExtremeCrafting {
11+
12+
@ModifyArg(
13+
method = "drawGuiContainerForegroundLayer",
14+
at = @At(
15+
value = "INVOKE",
16+
target = "Lnet/minecraft/client/gui/FontRenderer;drawString(Ljava/lang/String;III)I",
17+
ordinal = 2
18+
),
19+
index = 2
20+
)
21+
private int modifyDrawString(int y) {
22+
if (NovaEngCoreConfig.CLIENT.ExtremeCraftingUIModification) {
23+
return y - 35; // this.ySize - 96 + 2
24+
} else {
25+
return y;
26+
}
27+
}
28+
29+
}

src/main/resources/mixins.novaeng_core_avaritia.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
"minVersion": "0.8",
66
"compatibilityLevel": "JAVA_8",
77
"mixins": [
8+
"MixinContainerExtremeCrafting",
89
"MixinEntityImmortalItem"
10+
],
11+
"client": [
12+
"MixinGuiExtremeCrafting"
913
]
1014
}

0 commit comments

Comments
 (0)